@rjsf/core 6.3.0 → 6.4.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/dist/core.umd.js +45 -14
- package/dist/index.cjs +45 -14
- package/dist/index.cjs.map +2 -2
- package/dist/index.esm.js +45 -14
- package/dist/index.esm.js.map +2 -2
- package/lib/components/Form.d.ts +10 -0
- package/lib/components/Form.d.ts.map +1 -1
- package/lib/components/Form.js +44 -13
- package/lib/components/fields/ArrayField.d.ts.map +1 -1
- package/lib/components/fields/ArrayField.js +2 -1
- package/lib/tsconfig.tsbuildinfo +1 -1
- package/package.json +5 -5
- package/src/components/Form.tsx +53 -13
- package/src/components/fields/ArrayField.tsx +2 -1
package/lib/components/Form.d.ts
CHANGED
|
@@ -243,6 +243,8 @@ export interface FormState<T = any, S extends StrictRJSFSchema = RJSFSchema, F e
|
|
|
243
243
|
initialDefaultsGenerated: boolean;
|
|
244
244
|
/** The registry (re)computed only when props changed */
|
|
245
245
|
registry: Registry<T, S, F>;
|
|
246
|
+
/** Tracks the previous `extraErrors` prop reference so that `getDerivedStateFromProps` can detect changes */
|
|
247
|
+
_prevExtraErrors?: ErrorSchema<T>;
|
|
246
248
|
}
|
|
247
249
|
/** The event data passed when changes have been made to the form, includes everything from the `FormState` except
|
|
248
250
|
* the schema validation errors. An additional `status` is added when returned from `onSubmit`
|
|
@@ -276,6 +278,14 @@ export default class Form<T = any, S extends StrictRJSFSchema = RJSFSchema, F ex
|
|
|
276
278
|
* This prevents componentDidUpdate from reverting oneOf/anyOf option switches.
|
|
277
279
|
*/
|
|
278
280
|
private _isProcessingUserChange;
|
|
281
|
+
/** When the `extraErrors` prop changes, re-merges `schemaValidationErrors` + `extraErrors` + `customErrors` into
|
|
282
|
+
* state before render, ensuring the updated errors are visible immediately in a single render cycle.
|
|
283
|
+
*
|
|
284
|
+
* @param props - The current props
|
|
285
|
+
* @param state - The current state
|
|
286
|
+
* @returns Partial state with re-merged errors if `extraErrors` changed, or `null` if no update is needed
|
|
287
|
+
*/
|
|
288
|
+
static getDerivedStateFromProps<T = any, S extends StrictRJSFSchema = RJSFSchema, F extends FormContextType = any>(props: FormProps<T, S, F>, state: FormState<T, S, F>): Partial<FormState<T, S, F>> | null;
|
|
279
289
|
/** Constructs the `Form` from the `props`. Will setup the initial state from the props. It will also call the
|
|
280
290
|
* `onChange` handler if the initially provided `formData` is modified to add missing default values as part of the
|
|
281
291
|
* state construction.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Form.d.ts","sourceRoot":"","sources":["../../src/components/Form.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,SAAS,EAAE,SAAS,EAAE,GAAG,EAAE,SAAS,EAAa,MAAM,OAAO,CAAC;AAChG,OAAO,EAEL,eAAe,EAEf,WAAW,EACX,kBAAkB,EAClB,gBAAgB,EAEhB,WAAW,EACX,aAAa,EACb,eAAe,EAMf,UAAU,EACV,gBAAgB,EAChB,QAAQ,EACR,kBAAkB,EAClB,mBAAmB,EACnB,UAAU,EACV,mBAAmB,EACnB,eAAe,EAGf,aAAa,EAGb,QAAQ,EAIR,cAAc,EAEd,aAAa,EACb,qCAAqC,EACrC,6BAA6B,EAM7B,qBAAqB,EAGtB,MAAM,aAAa,CAAC;AAYrB;;GAEG;AACH,KAAK,uBAAuB,GAAG,OAAO,CAAC;AAEvC,mDAAmD;AACnD,MAAM,WAAW,SAAS,CAAC,CAAC,GAAG,GAAG,EAAE,CAAC,SAAS,gBAAgB,GAAG,UAAU,EAAE,CAAC,SAAS,eAAe,GAAG,GAAG;IAC1G,0CAA0C;IAC1C,MAAM,EAAE,CAAC,CAAC;IACV,oGAAoG;IACpG,SAAS,EAAE,aAAa,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IAClC,kGAAkG;IAClG,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,gCAAgC;IAChC,QAAQ,CAAC,EAAE,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IAC7B;;OAEG;IACH,QAAQ,CAAC,EAAE,CAAC,CAAC;IACb;;OAEG;IACH,eAAe,CAAC,EAAE,CAAC,CAAC;IAEpB;;;;;OAKG;IACH,WAAW,CAAC,EAAE,CAAC,CAAC;IAChB;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;OAEG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;;OAGG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB,sDAAsD;IACtD,MAAM,CAAC,EAAE,kBAAkB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IACrC,qHAAqH;IACrH,SAAS,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,iBAAiB,CAAC,CAAC,GAAG;QACrE,eAAe,CAAC,EAAE,OAAO,CAAC,aAAa,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC;KACtE,CAAC;IACF,uDAAuD;IACvD,OAAO,CAAC,EAAE,mBAAmB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IAEvC;;;OAGG;IACH,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IAC9D;;OAEG;IACH,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE,mBAAmB,EAAE,KAAK,IAAI,CAAC;IAClD;;;OAGG;IACH,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC;IACxE;;OAEG;IACH,MAAM,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,KAAK,IAAI,CAAC;IACzC;;OAEG;IACH,OAAO,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,KAAK,IAAI,CAAC;IAC1C,+FAA+F;IAC/F,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB;;;;;OAKG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,6FAA6F;IAC7F,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,sFAAsF;IACtF,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,wFAAwF;IACxF,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,mFAAmF;IACnF,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,qFAAqF;IACrF,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,uFAAuF;IACvF,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;;OAGG;IACH,OAAO,CAAC,EAAE,WAAW,CAAC;IACtB,uFAAuF;IACvF,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB,yGAAyG;IACzG,cAAc,CAAC,EAAE,eAAe,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IAC1C;;;OAGG;IACH,WAAW,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC;IAC7B,6FAA6F;IAC7F,sBAAsB,CAAC,EAAE,OAAO,CAAC;IACjC,wFAAwF;IACxF,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B;;;OAGG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB;;;;;;;;;OASG;IACH,YAAY,CAAC,EAAE,UAAU,GAAG,QAAQ,GAAG,uBAAuB,CAAC;IAC/D;;;;;;;;;OASG;IACH,QAAQ,CAAC,EAAE,UAAU,GAAG,QAAQ,GAAG,uBAAuB,CAAC;IAC3D;;OAEG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB;;OAEG;IACH,aAAa,CAAC,EAAE,KAAK,GAAG,KAAK,GAAG,QAAQ,CAAC;IACzC;;OAEG;IACH,eAAe,CAAC,EAAE,gBAAgB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IAC5C;OACG;IACH,iBAAiB,CAAC,EAAE,OAAO,GAAG,CAAC,CAAC,KAAK,EAAE,mBAAmB,KAAK,IAAI,CAAC,CAAC;IACrE;;;;OAIG;IACH,eAAe,CAAC,EAAE,QAAQ,CAAC,iBAAiB,CAAC,CAAC;IAC9C;OACG;IACH,aAAa,CAAC,EAAE,qBAAqB,CAAC;IACtC;;OAEG;IACH,+BAA+B,CAAC,EAAE,OAAO,CAAC;IAC1C;;;OAGG;IACH,qCAAqC,CAAC,EAAE,qCAAqC,CAAC;IAC9E;;;;;;;;;OASG;IACH,oCAAoC,CAAC,EAAE,YAAY,GAAG,SAAS,GAAG,QAAQ,CAAC;IAC3E;OACG;IACH,6BAA6B,CAAC,EAAE,6BAA6B,CAAC,CAAC,CAAC,CAAC;IAEjE;;;;;;;;;;;;;;OAcG;IACH,oBAAoB,CAAC,EAAE,WAAW,CAAC;IACnC;OACG;IACH,GAAG,CAAC,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;CAC1B;AAED,iEAAiE;AACjE,MAAM,WAAW,SAAS,CAAC,CAAC,GAAG,GAAG,EAAE,CAAC,SAAS,gBAAgB,GAAG,UAAU,EAAE,CAAC,SAAS,eAAe,GAAG,GAAG;IAC1G,0CAA0C;IAC1C,MAAM,EAAE,CAAC,CAAC;IACV,gCAAgC;IAChC,QAAQ,EAAE,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IAC5B;;OAEG;IACH,WAAW,EAAE,WAAW,CAAC;IACzB,uGAAuG;IACvG,WAAW,EAAE,eAAe,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IACtC,wGAAwG;IACxG,QAAQ,CAAC,EAAE,CAAC,CAAC;IACb,oHAAoH;IACpH,IAAI,EAAE,OAAO,CAAC;IACd,sEAAsE;IACtE,MAAM,EAAE,mBAAmB,EAAE,CAAC;IAC9B,wFAAwF;IACxF,WAAW,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC;IAE5B,8GAA8G;IAC9G,sBAAsB,EAAE,mBAAmB,EAAE,CAAC;IAC9C;;OAEG;IACH,2BAA2B,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC;IAC5C,uEAAuE;IACvE,YAAY,CAAC,EAAE,kBAAkB,CAAC,CAAC,CAAC,CAAC;IACrC,2KAA2K;IAC3K,eAAe,EAAE,CAAC,CAAC;IACnB,4EAA4E;IAC5E,wBAAwB,EAAE,OAAO,CAAC;IAClC,wDAAwD;IACxD,QAAQ,EAAE,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"Form.d.ts","sourceRoot":"","sources":["../../src/components/Form.tsx"],"names":[],"mappings":"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"}
|
package/lib/components/Form.js
CHANGED
|
@@ -35,6 +35,30 @@ export default class Form extends Component {
|
|
|
35
35
|
* This prevents componentDidUpdate from reverting oneOf/anyOf option switches.
|
|
36
36
|
*/
|
|
37
37
|
_isProcessingUserChange = false;
|
|
38
|
+
/** When the `extraErrors` prop changes, re-merges `schemaValidationErrors` + `extraErrors` + `customErrors` into
|
|
39
|
+
* state before render, ensuring the updated errors are visible immediately in a single render cycle.
|
|
40
|
+
*
|
|
41
|
+
* @param props - The current props
|
|
42
|
+
* @param state - The current state
|
|
43
|
+
* @returns Partial state with re-merged errors if `extraErrors` changed, or `null` if no update is needed
|
|
44
|
+
*/
|
|
45
|
+
static getDerivedStateFromProps(props, state) {
|
|
46
|
+
if (props.extraErrors !== state._prevExtraErrors) {
|
|
47
|
+
const baseErrors = {
|
|
48
|
+
errors: state.schemaValidationErrors || [],
|
|
49
|
+
errorSchema: (state.schemaValidationErrorSchema || {}),
|
|
50
|
+
};
|
|
51
|
+
let { errors, errorSchema } = baseErrors;
|
|
52
|
+
if (props.extraErrors) {
|
|
53
|
+
({ errors, errorSchema } = validationDataMerge(baseErrors, props.extraErrors));
|
|
54
|
+
}
|
|
55
|
+
if (state.customErrors) {
|
|
56
|
+
({ errors, errorSchema } = validationDataMerge({ errors, errorSchema }, state.customErrors.ErrorSchema, true));
|
|
57
|
+
}
|
|
58
|
+
return { _prevExtraErrors: props.extraErrors, errors, errorSchema };
|
|
59
|
+
}
|
|
60
|
+
return null;
|
|
61
|
+
}
|
|
38
62
|
/** Constructs the `Form` from the `props`. Will setup the initial state from the props. It will also call the
|
|
39
63
|
* `onChange` handler if the initially provided `formData` is modified to add missing default values as part of the
|
|
40
64
|
* state construction.
|
|
@@ -48,7 +72,10 @@ export default class Form extends Component {
|
|
|
48
72
|
}
|
|
49
73
|
const { formData: propsFormData, initialFormData, onChange } = props;
|
|
50
74
|
const formData = propsFormData ?? initialFormData;
|
|
51
|
-
this.state =
|
|
75
|
+
this.state = {
|
|
76
|
+
...this.getStateFromProps(props, formData, undefined, undefined, undefined, true),
|
|
77
|
+
_prevExtraErrors: props.extraErrors,
|
|
78
|
+
};
|
|
52
79
|
if (onChange && !deepEquals(this.state.formData, formData)) {
|
|
53
80
|
onChange(toIChangeEvent(this.state));
|
|
54
81
|
}
|
|
@@ -720,17 +747,12 @@ export default class Form extends Component {
|
|
|
720
747
|
const { extraErrors, extraErrorsBlockSubmit, focusOnFirstError, onError } = this.props;
|
|
721
748
|
const { errors: prevErrors } = this.state;
|
|
722
749
|
const schemaValidation = this.validate(formData);
|
|
723
|
-
|
|
724
|
-
|
|
725
|
-
|
|
726
|
-
|
|
727
|
-
const hasError = errors.length > 0 || (extraErrors && extraErrorsBlockSubmit);
|
|
750
|
+
// Always merge extraErrors so they remain visible in state regardless of extraErrorsBlockSubmit.
|
|
751
|
+
const { errors, errorSchema } = extraErrors ? this.mergeErrors(schemaValidation, extraErrors) : schemaValidation;
|
|
752
|
+
// hasError gates submission: schema errors always block; extraErrors only block when
|
|
753
|
+
// extraErrorsBlockSubmit is set (non-breaking default: extraErrors are informational only).
|
|
754
|
+
const hasError = schemaValidation.errors.length > 0 || (extraErrors && extraErrorsBlockSubmit);
|
|
728
755
|
if (hasError) {
|
|
729
|
-
if (extraErrors) {
|
|
730
|
-
const merged = validationDataMerge(schemaValidation, extraErrors);
|
|
731
|
-
errorSchema = merged.errorSchema;
|
|
732
|
-
errors = merged.errors;
|
|
733
|
-
}
|
|
734
756
|
if (focusOnFirstError) {
|
|
735
757
|
if (typeof focusOnFirstError === 'function') {
|
|
736
758
|
focusOnFirstError(errors[0]);
|
|
@@ -742,8 +764,8 @@ export default class Form extends Component {
|
|
|
742
764
|
this.setState({
|
|
743
765
|
errors,
|
|
744
766
|
errorSchema,
|
|
745
|
-
schemaValidationErrors,
|
|
746
|
-
schemaValidationErrorSchema,
|
|
767
|
+
schemaValidationErrors: schemaValidation.errors,
|
|
768
|
+
schemaValidationErrorSchema: schemaValidation.errorSchema,
|
|
747
769
|
}, () => {
|
|
748
770
|
if (onError) {
|
|
749
771
|
onError(errors);
|
|
@@ -753,6 +775,15 @@ export default class Form extends Component {
|
|
|
753
775
|
}
|
|
754
776
|
});
|
|
755
777
|
}
|
|
778
|
+
else if (errors.length > 0) {
|
|
779
|
+
// Non-blocking extraErrors are present — update display state without triggering onError.
|
|
780
|
+
this.setState({
|
|
781
|
+
errors,
|
|
782
|
+
errorSchema,
|
|
783
|
+
schemaValidationErrors: [],
|
|
784
|
+
schemaValidationErrorSchema: {},
|
|
785
|
+
});
|
|
786
|
+
}
|
|
756
787
|
else if (prevErrors.length > 0) {
|
|
757
788
|
this.setState({
|
|
758
789
|
errors: [],
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ArrayField.d.ts","sourceRoot":"","sources":["../../../src/components/fields/ArrayField.tsx"],"names":[],"mappings":"AACA,OAAO,EAmBL,UAAU,EACV,eAAe,EAEf,UAAU,EACV,gBAAgB,EAIjB,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"ArrayField.d.ts","sourceRoot":"","sources":["../../../src/components/fields/ArrayField.tsx"],"names":[],"mappings":"AACA,OAAO,EAmBL,UAAU,EACV,eAAe,EAEf,UAAU,EACV,gBAAgB,EAIjB,MAAM,aAAa,CAAC;AAwzBrB;;GAEG;AACH,MAAM,CAAC,OAAO,UAAU,UAAU,CAAC,CAAC,GAAG,GAAG,EAAE,CAAC,SAAS,gBAAgB,GAAG,UAAU,EAAE,CAAC,SAAS,eAAe,GAAG,GAAG,EAClH,KAAK,EAAE,UAAU,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,2CAkP7B"}
|
|
@@ -125,7 +125,8 @@ function ArrayAsMultiSelect(props) {
|
|
|
125
125
|
const { schema, fieldPathId, uiSchema, formData: items = [], disabled = false, readonly = false, autofocus = false, required = false, placeholder, onBlur, onFocus, registry, rawErrors, name, onSelectChange, } = props;
|
|
126
126
|
const { widgets, schemaUtils, globalFormOptions, globalUiOptions } = registry;
|
|
127
127
|
const itemsSchema = schemaUtils.retrieveSchema(schema.items, items);
|
|
128
|
-
const
|
|
128
|
+
const itemsUiSchema = (uiSchema?.items ?? {});
|
|
129
|
+
const enumOptions = optionsList(itemsSchema, itemsUiSchema);
|
|
129
130
|
const { widget = 'select', title: uiTitle, ...options } = getUiOptions(uiSchema, globalUiOptions);
|
|
130
131
|
const Widget = getWidget(schema, widget, widgets);
|
|
131
132
|
const label = uiTitle ?? schema.title ?? name;
|