securingsincity/react-ace

Conditionally setting className removes ace-editor class

Aperta

#823 aperta il 13 apr 2020

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

Metriche repository

Star
 (3859 stelle)
Metriche merge PR
 (Metriche PR in attesa)

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