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.
- package/README.md +4 -4
- package/lib/RelayFormsTypes.d.ts +5 -1
- package/lib/es/RelayFormsTypes.d.ts +5 -1
- package/lib/es/index.d.ts +2 -2
- package/lib/es/index.js +2 -2
- package/lib/es/relay/queryErrorsFieldQuery.graphql.d.ts +28 -0
- package/lib/es/relay/queryErrorsFieldQuery.graphql.js +103 -0
- package/lib/es/relay/queryFieldFragment.graphql.d.ts +18 -0
- package/lib/es/relay/queryFieldFragment.graphql.js +28 -0
- package/lib/es/relay/queryFieldQuery.graphql.d.ts +25 -0
- package/lib/es/relay/queryFieldQuery.graphql.js +85 -0
- package/lib/es/relay/queryValueFieldFragment.graphql.d.ts +20 -0
- package/lib/es/relay/queryValueFieldFragment.graphql.js +40 -0
- package/lib/es/useForm.d.ts +2 -0
- package/lib/es/{useFormSubmit.js → useForm.js} +2 -2
- package/lib/es/{useFormSetValue.d.ts → useFormField.d.ts} +1 -1
- package/lib/es/{useFormSetValue.js → useFormField.js} +49 -11
- package/lib/es/useFormState.js +3 -1
- package/lib/index.d.ts +2 -2
- package/lib/index.js +4 -4
- package/lib/relay/queryErrorsFieldQuery.graphql.d.ts +28 -0
- package/lib/relay/queryErrorsFieldQuery.graphql.js +108 -0
- package/lib/relay/queryFieldFragment.graphql.d.ts +18 -0
- package/lib/relay/queryFieldFragment.graphql.js +33 -0
- package/lib/relay/queryFieldQuery.graphql.d.ts +25 -0
- package/lib/relay/queryFieldQuery.graphql.js +90 -0
- package/lib/relay/queryValueFieldFragment.graphql.d.ts +20 -0
- package/lib/relay/queryValueFieldFragment.graphql.js +45 -0
- package/lib/umd/relay-forms-nodeps.js +133 -69
- package/lib/umd/relay-forms-nodeps.js.map +1 -1
- package/lib/umd/relay-forms-nodeps.min.js +1 -1
- package/lib/umd/relay-forms-nodeps.min.js.map +1 -1
- package/lib/useForm.d.ts +2 -0
- package/lib/{useFormSubmit.js → useForm.js} +6 -6
- package/lib/{useFormSetValue.d.ts → useFormField.d.ts} +1 -1
- package/lib/{useFormSetValue.js → useFormField.js} +50 -12
- package/lib/useFormState.js +3 -1
- package/package.json +4 -4
- package/lib/es/useFormSubmit.d.ts +0 -2
- 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
|
|
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
|
|
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(
|
|
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') ===
|
|
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(
|
|
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.
|
|
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
|
|
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
|
-
|
|
115
|
-
|
|
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
|
|
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.
|
|
227
|
+
exports.useFormField = useFormField;
|
package/lib/useFormState.js
CHANGED
|
@@ -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
|
-
|
|
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": "
|
|
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": "^
|
|
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": "^
|
|
72
|
-
"relay-test-utils-internal": "^
|
|
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",
|
package/lib/useFormSubmit.d.ts
DELETED