{"action":"created","issue":{"url":"https://api.github.com/repos/nteract/hydrogen/issues/627","repository_url":"https://api.github.com/repos/nteract/hydrogen","labels_url":"https://api.github.com/repos/nteract/hydrogen/issues/627/labels{/name}","comments_url":"https://api.github.com/repos/nteract/hydrogen/issues/627/comments","events_url":"https://api.github.com/repos/nteract/hydrogen/issues/627/events","html_url":"https://github.com/nteract/hydrogen/pull/627","id":211059458,"number":627,"title":"Evaluate React for Hydrogen","user":{"login":"lgeiger","id":13285808,"avatar_url":"https://avatars2.githubusercontent.com/u/13285808?v=3","gravatar_id":"","url":"https://api.github.com/users/lgeiger","html_url":"https://github.com/lgeiger","followers_url":"https://api.github.com/users/lgeiger/followers","following_url":"https://api.github.com/users/lgeiger/following{/other_user}","gists_url":"https://api.github.com/users/lgeiger/gists{/gist_id}","starred_url":"https://api.github.com/users/lgeiger/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/lgeiger/subscriptions","organizations_url":"https://api.github.com/users/lgeiger/orgs","repos_url":"https://api.github.com/users/lgeiger/repos","events_url":"https://api.github.com/users/lgeiger/events{/privacy}","received_events_url":"https://api.github.com/users/lgeiger/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":10,"created_at":"2017-03-01T11:53:11Z","updated_at":"2017-03-11T16:44:52Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/nteract/hydrogen/pulls/627","html_url":"https://github.com/nteract/hydrogen/pull/627","diff_url":"https://github.com/nteract/hydrogen/pull/627.diff","patch_url":"https://github.com/nteract/hydrogen/pull/627.patch"},"body":"In order to gain more experience with React and to evaluate its usage inside Atom I took a stab at implementing the status bar as a React component. If we start using React we could use`nteract`'s components in the future. With this in mind I'd like to share this experiment with you (it got a bit out of control but it actually works 😄):\r\n\r\nI setup a global store managed by [MobX](https://mobx.js.org/) which stores all running kernels and a reference to the current kernel depending on the active editor.\r\nI opted for MobX over Redux because it is simpler to introduce in our current codebase (especially for a me who doesn't know very much about React and Redux). Though this doesn't mean we can't switch to Redux in the future, MobX brings us already in the right direction.\r\n\r\nThe idea is to make it easier to manage the running kernels and automatically update the relevant views (for now only the status bar) which would make it easier to fix #40 in the future.\r\n\r\n@rgbkrk @n-riesco I would love to hear your feedback.  Do you think we should move in that direction?\r\n\r\nThe biggest downside is the package size increase of 5.9 MB. Though we could experiment with [Preact](https://preactjs.com/) for reducing the package size.\r\n\r\nIf we decide to move in that direction, here would be my future steps:\r\n- [x] Test this PR to make sure everything works\r\n- [ ] get rid of `kernelManager` or simplify it\r\n- [ ] Reduce size of `main.js` since the functions can now use values from `store`\r\n- [x] Refactor Inspector as React component and get rid of `atom-message-panel` (2MB)\r\n- [ ] Refactor List Views to use [`atom-select-list`](https://github.com/atom/atom-select-list)  instead of the deprecated `atom-space-pen-views` which relies on jQuery\r\n- [ ] Refactor Watch Sidebar as React component\r\n- [ ] Replace `transformime` with `@nteract/transforms`"},"comment":{"url":"https://api.github.com/repos/nteract/hydrogen/issues/comments/285879905","html_url":"https://github.com/nteract/hydrogen/pull/627#issuecomment-285879905","issue_url":"https://api.github.com/repos/nteract/hydrogen/issues/627","id":285879905,"user":{"login":"rgbkrk","id":836375,"avatar_url":"https://avatars3.githubusercontent.com/u/836375?v=3","gravatar_id":"","url":"https://api.github.com/users/rgbkrk","html_url":"https://github.com/rgbkrk","followers_url":"https://api.github.com/users/rgbkrk/followers","following_url":"https://api.github.com/users/rgbkrk/following{/other_user}","gists_url":"https://api.github.com/users/rgbkrk/gists{/gist_id}","starred_url":"https://api.github.com/users/rgbkrk/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/rgbkrk/subscriptions","organizations_url":"https://api.github.com/users/rgbkrk/orgs","repos_url":"https://api.github.com/users/rgbkrk/repos","events_url":"https://api.github.com/users/rgbkrk/events{/privacy}","received_events_url":"https://api.github.com/users/rgbkrk/received_events","type":"User","site_admin":false},"created_at":"2017-03-11T16:44:52Z","updated_at":"2017-03-11T16:44:52Z","body":"It's the weekend now so I can still take this for a spin later on."}}
{"actor":{"display_login":"rgbkrk"}}