Conversation
| default: | ||
| parsed[key] = val; | ||
| if (element === undefined) { | ||
| delete this.state.formState[key]; |
There was a problem hiding this comment.
we don't want to directly manipulate the state here. Instead we need to eventually pass the new data to setState. We use the return value from this method to set the state correctly on line 153. So, I think if the element is undefined we can just skip that element and move on. It will then not end up in parsed and will be later removed from the state when we do setState
| this.props.onConfirm(formState); | ||
| if (!this.props.keepCurrentFormState) { | ||
| const formState = {}; | ||
| formState = {}; |
There was a problem hiding this comment.
removed the const because the variable is block scoped and so it would never be saved properly here
There was a problem hiding this comment.
yep, saw that after and deleted my comment, didn't have the diff open wide enough
|
Updated to ignore unused fields. I tried removing the state entirely and getting it working with just props, but it didn't work easily. It seems possible though. We should re-visit it at another time. |
|
Looking good on stable, LGTM |
This fixes an issue with how the form elements were mapped. If a prior form field isn't used in an updated form, it would throw an undefined error when it tried to access the non-existent field. I tried finding a good way to remove the field without disrupting the rest of the uses of the FormModal component, but I could not find one. Right now it just removes as unused fields from the mapping. If you see a better method, I could def use it
@ssalinas