It was a client side thing, I did not used recent version of React but at that time from my memory the abstraction was not perfect, you had the idea that you have some html then your render function generates some new html and react using magic updates the old with the new. What was missing is the focus is not html (probably the same for selection and other document properties) so you could have problems and you had to understand what is happening under the abstraction.
From my experience though are bad abstraction that are not consistent, like we had a web project working untouched in 1 full year and some feature stopped working one day (nobody touched anything) but I could not reproduce it on my machine. I still have no idea what triggered it but the problem was that for some reason the PHP autoloader "searching" found a different file then before (maybe it was some caching/filesystem or other low level update on the VPS that triggered this)... anyway I had to read the code and understand how the magic happens so I can elucidate the bug.