relay-forms-nodeps 1.1.1 → 2.2.0

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.
Files changed (40) hide show
  1. package/README.md +4 -4
  2. package/lib/RelayFormsTypes.d.ts +5 -1
  3. package/lib/es/RelayFormsTypes.d.ts +5 -1
  4. package/lib/es/index.d.ts +2 -2
  5. package/lib/es/index.js +2 -2
  6. package/lib/es/relay/queryErrorsFieldQuery.graphql.d.ts +28 -0
  7. package/lib/es/relay/queryErrorsFieldQuery.graphql.js +103 -0
  8. package/lib/es/relay/queryFieldFragment.graphql.d.ts +18 -0
  9. package/lib/es/relay/queryFieldFragment.graphql.js +28 -0
  10. package/lib/es/relay/queryFieldQuery.graphql.d.ts +25 -0
  11. package/lib/es/relay/queryFieldQuery.graphql.js +85 -0
  12. package/lib/es/relay/queryValueFieldFragment.graphql.d.ts +20 -0
  13. package/lib/es/relay/queryValueFieldFragment.graphql.js +40 -0
  14. package/lib/es/useForm.d.ts +2 -0
  15. package/lib/es/{useFormSubmit.js → useForm.js} +2 -2
  16. package/lib/es/{useFormSetValue.d.ts → useFormField.d.ts} +1 -1
  17. package/lib/es/{useFormSetValue.js → useFormField.js} +49 -11
  18. package/lib/es/useFormState.js +3 -1
  19. package/lib/index.d.ts +2 -2
  20. package/lib/index.js +4 -4
  21. package/lib/relay/queryErrorsFieldQuery.graphql.d.ts +28 -0
  22. package/lib/relay/queryErrorsFieldQuery.graphql.js +108 -0
  23. package/lib/relay/queryFieldFragment.graphql.d.ts +18 -0
  24. package/lib/relay/queryFieldFragment.graphql.js +33 -0
  25. package/lib/relay/queryFieldQuery.graphql.d.ts +25 -0
  26. package/lib/relay/queryFieldQuery.graphql.js +90 -0
  27. package/lib/relay/queryValueFieldFragment.graphql.d.ts +20 -0
  28. package/lib/relay/queryValueFieldFragment.graphql.js +45 -0
  29. package/lib/umd/relay-forms-nodeps.js +133 -69
  30. package/lib/umd/relay-forms-nodeps.js.map +1 -1
  31. package/lib/umd/relay-forms-nodeps.min.js +1 -1
  32. package/lib/umd/relay-forms-nodeps.min.js.map +1 -1
  33. package/lib/useForm.d.ts +2 -0
  34. package/lib/{useFormSubmit.js → useForm.js} +6 -6
  35. package/lib/{useFormSetValue.d.ts → useFormField.d.ts} +1 -1
  36. package/lib/{useFormSetValue.js → useFormField.js} +50 -12
  37. package/lib/useFormState.js +3 -1
  38. package/package.json +4 -4
  39. package/lib/es/useFormSubmit.d.ts +0 -2
  40. package/lib/useFormSubmit.d.ts +0 -2
@@ -6,7 +6,7 @@ Object.defineProperty(exports, "__esModule", {
6
6
  var React = require("react");
7
7
  var RelayStoreProvider_1 = require("./relay/RelayStoreProvider");
8
8
  var RelayStoreUtils_1 = require("./relay/RelayStoreUtils");
9
- var useFormSetValue_1 = require("./useFormSetValue");
9
+ var useFormField_1 = require("./useFormField");
10
10
  var Utils_1 = require("./Utils");
11
11
  function logicSubmit(environment, onSubmit) {
12
12
  function dispose() {
@@ -25,7 +25,7 @@ function logicSubmit(environment, onSubmit) {
25
25
  var data = snapshot.data;
26
26
  var entries = data.form.entries;
27
27
  var filtered = entries.filter(function (value) {
28
- return useFormSetValue_1.isDone(value.check);
28
+ return useFormField_1.isDone(value.check);
29
29
  });
30
30
  var isValidating = filtered.length !== entries.length;
31
31
  var errors = entries.filter(function (value) {
@@ -62,7 +62,7 @@ function logicSubmit(environment, onSubmit) {
62
62
  dispose();
63
63
  Utils_1.commit(environment, function (_, form) {
64
64
  form.setValue(false, 'isSubmitting').setValue(false, 'isValidating').setLinkedRecords([], 'errors').getLinkedRecords('entries').forEach(function (entry) {
65
- return entry.setValue(useFormSetValue_1.RESET, 'check').setValue(undefined, 'error');
65
+ return entry.setValue(useFormField_1.RESET, 'check').setValue(undefined, 'error');
66
66
  });
67
67
  });
68
68
  }
@@ -70,11 +70,11 @@ function logicSubmit(environment, onSubmit) {
70
70
  function validate() {
71
71
  Utils_1.commit(environment, function (_, form) {
72
72
  var tobeValitating = form.setValue(isSubmitting, 'isSubmitting').getLinkedRecords('entries').filter(function (value) {
73
- return value.getValue('check') === useFormSetValue_1.TOBEVALIDATE;
73
+ return value.getValue('check') === useFormField_1.TOBEVALIDATE;
74
74
  });
75
75
  form.setValue(tobeValitating.length === 0, 'isValidating');
76
76
  tobeValitating.forEach(function (entry) {
77
- return entry.setValue(useFormSetValue_1.VALIDATING, 'check');
77
+ return entry.setValue(useFormField_1.VALIDATING, 'check');
78
78
  });
79
79
  });
80
80
  var snapshot = environment.lookup(Utils_1.operationQueryForm.fragment);
@@ -112,7 +112,7 @@ function logicSubmit(environment, onSubmit) {
112
112
  getData: getData
113
113
  };
114
114
  }
115
- exports.useFormSubmit = function (_a) {
115
+ exports.useForm = function (_a) {
116
116
  var onSubmit = _a.onSubmit;
117
117
  var environment = RelayStoreProvider_1.useStore();
118
118
  var resolver = React.useMemo(function () {
@@ -3,4 +3,4 @@ export declare const TOBEVALIDATE = 1;
3
3
  export declare const VALIDATING = 2;
4
4
  export declare const RESET = 5;
5
5
  export declare function isDone(check: any): boolean;
6
- export declare function useFormSetValue<ValueType>({ key, initialValue, validate, validateOnChange, label, }: FormSetValueOptions<ValueType>): FormSetValueReturn<ValueType>;
6
+ export declare function useFormField<ValueType>({ key, initialValue, validate, validateOnChange, label, dependsOn, }: FormSetValueOptions<ValueType>): FormSetValueReturn<ValueType>;
@@ -1,10 +1,21 @@
1
1
  "use strict";
2
2
 
3
+ var __assign = this && this.__assign || function () {
4
+ __assign = Object.assign || function (t) {
5
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
6
+ s = arguments[i];
7
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
8
+ }
9
+ return t;
10
+ };
11
+ return __assign.apply(this, arguments);
12
+ };
3
13
  Object.defineProperty(exports, "__esModule", {
4
14
  value: true
5
15
  });
6
16
  var React = require("react");
7
17
  var queries_1 = require("./relay/queries");
18
+ var queryValueFieldFragment_graphql_1 = require("./relay/queryValueFieldFragment.graphql");
8
19
  var RelayStoreProvider_1 = require("./relay/RelayStoreProvider");
9
20
  var RelayStoreUtils_1 = require("./relay/RelayStoreUtils");
10
21
  var useForceUpdate_1 = require("./useForceUpdate");
@@ -28,10 +39,15 @@ function logicSetValue(params) {
28
39
  initialValue = params.initialValue,
29
40
  forceUpdate = params.forceUpdate,
30
41
  validateOnChange = params.validateOnChange,
31
- label = params.label;
42
+ label = params.label,
43
+ dependsOn = params.dependsOn;
32
44
  var validate = undefined;
33
45
  var firstSet = true;
46
+ var deps = {};
34
47
  var localId = Utils_1.getFieldId(key);
48
+ function getDeps() {
49
+ return deps;
50
+ }
35
51
  function getValidate() {
36
52
  return validate;
37
53
  }
@@ -106,13 +122,14 @@ function logicSetValue(params) {
106
122
  }
107
123
  commitField(false);
108
124
  }
109
- function internalValidate(value, validateFunction) {
125
+ function internalValidate(value, validateFunction, depsValidation) {
110
126
  ref.isChecking = true;
111
- var result = validateFunction(value);
127
+ var result = validateFunction(value, deps);
112
128
  function internalFinalize(error) {
113
129
  var validate = getValidate();
114
- if (value !== dataResult.value || validate !== validateFunction) {
115
- internalValidate(dataResult.value, validate);
130
+ var deps = getDeps();
131
+ if (value !== dataResult.value || validate !== validateFunction || deps !== depsValidation) {
132
+ internalValidate(dataResult.value, validate, deps);
116
133
  return;
117
134
  }
118
135
  finalizeCheck(error);
@@ -136,9 +153,25 @@ function logicSetValue(params) {
136
153
  ref.check = getInitCheck(validate);
137
154
  setValueInternal(initialValue);
138
155
  } else if (isValidating && !ref.isChecking) {
139
- internalValidate(dataResult.value, validate);
156
+ internalValidate(dataResult.value, validate, deps);
140
157
  }
141
158
  }).dispose;
159
+ var disposeDeps = [];
160
+ if (dependsOn != null) {
161
+ dependsOn.forEach(function (depKey) {
162
+ var snapshot = Utils_1.getSnapshot(environment, queryValueFieldFragment_graphql_1.default, depKey);
163
+ var disposeDep = environment.subscribe(snapshot, function (s) {
164
+ var _a;
165
+ var data = s.data;
166
+ deps = __assign(__assign({}, deps), (_a = {}, _a[depKey] = data, _a));
167
+ if (ref.check == DONEVALIDATED && !ref.isChecking) {
168
+ ref.check = exports.VALIDATING;
169
+ commitField(false);
170
+ }
171
+ }).dispose;
172
+ disposeDeps.push(disposeDep);
173
+ });
174
+ }
142
175
  var dispose = function () {
143
176
  disposeSubscrition();
144
177
  Utils_1.commit(environment, function (store, form) {
@@ -149,9 +182,12 @@ function logicSetValue(params) {
149
182
  form.setLinkedRecords(newEntries, 'entries');
150
183
  store.delete(localId);
151
184
  });
185
+ disposeDeps.forEach(function (dispose) {
186
+ return dispose;
187
+ });
152
188
  };
153
189
  if (validateOnChange) {
154
- internalValidate(initialValue, getValidate());
190
+ internalValidate(initialValue, getValidate(), deps);
155
191
  }
156
192
  return dispose;
157
193
  }
@@ -162,12 +198,13 @@ function logicSetValue(params) {
162
198
  setValidate: setValidate
163
199
  };
164
200
  }
165
- function useFormSetValue(_a) {
201
+ function useFormField(_a) {
166
202
  var key = _a.key,
167
203
  initialValue = _a.initialValue,
168
204
  validate = _a.validate,
169
205
  validateOnChange = _a.validateOnChange,
170
- label = _a.label;
206
+ label = _a.label,
207
+ dependsOn = _a.dependsOn;
171
208
  var forceUpdate = useForceUpdate_1.useForceUpdate();
172
209
  var environment = RelayStoreProvider_1.useStore();
173
210
  var resolver = React.useMemo(function () {
@@ -177,13 +214,14 @@ function useFormSetValue(_a) {
177
214
  label: label,
178
215
  initialValue: initialValue,
179
216
  forceUpdate: forceUpdate,
180
- validateOnChange: validateOnChange
217
+ validateOnChange: validateOnChange,
218
+ dependsOn: dependsOn
181
219
  });
182
- }, [environment, key, initialValue, forceUpdate, validateOnChange, label]);
220
+ }, [environment, key, initialValue, forceUpdate, validateOnChange, label, dependsOn]);
183
221
  resolver.setValidate(validate);
184
222
  React.useEffect(function () {
185
223
  return resolver.subscribe();
186
224
  }, [resolver]);
187
225
  return [resolver.getData(), resolver.setValue];
188
226
  }
189
- exports.useFormSetValue = useFormSetValue;
227
+ exports.useFormField = useFormField;
@@ -9,7 +9,9 @@ var Utils_1 = require("./Utils");
9
9
  exports.useFormState = function () {
10
10
  var environment = RelayStoreProvider_1.useStore();
11
11
  var snapshot = React.useMemo(function () {
12
- return environment.lookup(Utils_1.operationQueryErrorsForm.fragment);
12
+ var s = environment.lookup(Utils_1.operationQueryErrorsForm.fragment);
13
+ s.seenRecords.add('local:form');
14
+ return s;
13
15
  }, [environment]);
14
16
  var _a = React.useState(snapshot.data.form),
15
17
  data = _a[0],
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "relay-forms-nodeps",
3
- "version": "1.1.1",
3
+ "version": "2.2.0",
4
4
  "keywords": [
5
5
  "forms",
6
6
  "relay",
@@ -65,11 +65,11 @@
65
65
  "graphql": "^14.2.0",
66
66
  "@types/react": "18.0.26",
67
67
  "@types/react-dom": "18.0.10",
68
- "relay-compiler": "^14.0.0",
68
+ "relay-compiler": "^17.0.0",
69
69
  "replace-in-file": "6.2.0",
70
70
  "react-test-renderer": "^18.0.0",
71
- "relay-test-utils": "^14.0.0",
72
- "relay-test-utils-internal": "^14.0.0",
71
+ "relay-test-utils": "^17.0.0",
72
+ "relay-test-utils-internal": "^17.0.0",
73
73
  "@types/jest": "24.0.18",
74
74
  "ts-jest": "^26.5.6",
75
75
  "jest": "^26.0.0",
@@ -1,2 +0,0 @@
1
- import { FormSubmitOptions, FormSubmitReturn } from './RelayFormsTypes';
2
- export declare const useFormSubmit: <ValueType extends object = object>({ onSubmit, }: FormSubmitOptions<ValueType>) => FormSubmitReturn;
@@ -1,2 +0,0 @@
1
- import { FormSubmitOptions, FormSubmitReturn } from './RelayFormsTypes';
2
- export declare const useFormSubmit: <ValueType extends object = object>({ onSubmit, }: FormSubmitOptions<ValueType>) => FormSubmitReturn;