adobe / adobe/react-webcomponent

Default model values are passed for attributes that are not present

Open
#13 0 comments 0 reactions 0 assignees View on GitHub
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

Open the contributing 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.