securingsincity/react-ace

Conditionally setting className removes ace-editor class

Open

#823 aperta il 13 apr 2020

Vedi su GitHub
 (1 commento) (3 reazioni) (0 assegnatari)JavaScript (615 fork)batch import
bughelp wanted

Metriche repository

Star
 (3859 star)
Metriche merge PR
 (Nessuna PR mergiata in 30 g)

Descrizione

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)

Guida contributor