port of react.js to dart