-
Notifications
You must be signed in to change notification settings - Fork 2.3k
Description
Prerequisites
- I have searched the existing issuesI understand that providing a SSCCE example is tremendously useful to the maintainers.I have read the documentationIdeally, I'm providing a sample JSFiddle, Codesandbox.io or preferably a shared playground link demonstrating the issue.To pick up a draggable item, press the space bar. While dragging, use the arrow keys to move the item. Press space again to drop the item in its new position, or press escape to cancel.
What theme are you using?
core
Version
5.x (current Playground version)
Current Behavior
I have a schema with type: object
and if/then
conditionally adding a new property with a default value. This works as expected. But if I wrap the whole schema in a wrapping object, the default value prefilling no longer works.
Expected Behavior
- Open this Playground example
- Click "checkbox"
Expected: A required field "foo" appears with default value "foo default value"
Actual: A required field "foo" appears with default value "foo default value"
I would expect that the same default behaviour happens even if the object is wrapped in another object.
Steps To Reproduce
- Open this Playground example which is the exact same schema as above but it's wrapped in a
wrappingObject
. - Click "checkbox"
Expected: A required field "foo" appears with default value "foo default value"
Actual: A required field "foo" appears with NO default value.
Environment
- Mac
- Google Chrome Version 125.0.6422.142 (Official Build) (arm64)
- Playground
Anything else?
Playground options
Playground has multiple options that control default behaviour:
- Populate minItems in arrays
- allOf defaults behaviour
- Object fields default behavior
I tried changing all these settings but none of them didn't solve the issue.
Duplicate?
Here's another open issue that looks very similar: #3599
It's similar because in #3599 the default behaviour seems to be first as expected, but when wrapped in an object, default prefilling is not working anymore. It's different in a sense that #3599 is about allOf but this bug is about if/then/else.
Feel free to close this one if you think this is duplicate of #3599
Activity
nickgros commentedon Jun 21, 2024
This is definitely a bug and we would appreciate a pull request to fix it. I just closed #3599 because I think that was fixed in #3969.
Interestingly, if you wrap
if
/then
/else
inallOf
, it works. So that may be a useful workaround for you. See this playground link.rap1ds commentedon Jun 28, 2024
Thanks for the workaround! The workaround seems to work fine when the "allOf defaults behaviour" is set to "Populate defaults with allOf"