adobe / adobe/react-webcomponent
Default model values are passed for attributes that are not present
- Dominant language
- JavaScript
- Stars
- 104
- Forks
- 20
- PR merge metrics
- No merged PRs in 30d
Description
### Expected Behaviour
If I have defined a model where I specify a boolean attribute. e.g. `@byBooleanAttrVal() checked`. And, I have an instance of my web component where I do not specify that attribute (e.g. . The props passed to my React components `render` method contain the `checked` prop set to the default value from the model definition.
### Actual Behaviour
I would expect any model attributes that are not specified to not be passed as props. Otherwise, I have no way of telling whether the user set that attribute or not.
### Reproduce Scenario (including but not limited to)
I was wrapping up a React implemented checkbox widget.
#### Steps to Reproduce
1. Create a React component that takes a boolean prop
2. Create a model for that component that uses `@byBooleanAttrVal()`
3. Instantiate the web component without using the boolean attribute from your model
4. Set a breakpoint in the `render` method of your React component
5. Look at the props and see that the boolean prop has been passed in
#### Platform and Version
Chrome 72
#### Sample Code that illustrates the problem
#### Logs taken while reproducing problem
Contributor guide
Research direction
Start by reproducing the documented custom-element and React render scenario, focusing on how model attributes are collected and passed as props. Done means an omitted boolean attribute is absent from the React props while an explicitly specified attribute still reaches render with its expected value.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- javascript, react
- Domain
- frontend
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 45/100