Conditionally setting className removes ace-editor class
#823 opened on Apr 13, 2020
Repository metrics
- Stars
- (3,859 stars)
- PR merge metrics
- (No merged PRs in 30d)
Description
Problem
When I am conditionally setting the className prop for an error - the editor position changes and breaks the UI.
For example: I set a className for an error. Once there is no longer an error, I am passing in an empty string. When inspecting the DOM, I noticed that the ace-editor class is getting removed.
After looking at the source code, I found this section which I believe is the culprit. If I am reading it correctly, I believe if there was a previous class name and the new class name is falsy, it would remove one of the libraries set class names (ace-editor).
Sample code to reproduce your issue
Conditional className prop:
className={error ? classes.error : ""}
Steps on how I am able to get this issue:
- Type in editor (starts with no className)
- Submit w/ error (updates className to
error) - Type more in editor (updates className to
"") - Submit w/ another error (updates className to
error)