ClojureScript. There are quite some React.js bindings out there you may reuse. And ClojureScript actually integrates quite well with JavaScript community since it's using Google Closure Compiler which is maintained by Google. So it's like new languages based on Google techniques. Elm sounds funs but I'm not writing Elm for some reasons. But I'm sure ClojureScript is a much closer choice.