{"action":"created","issue":{"url":"https://api.github.com/repos/radi-js/radi/issues/17","repository_url":"https://api.github.com/repos/radi-js/radi","labels_url":"https://api.github.com/repos/radi-js/radi/issues/17/labels{/name}","comments_url":"https://api.github.com/repos/radi-js/radi/issues/17/comments","events_url":"https://api.github.com/repos/radi-js/radi/issues/17/events","html_url":"https://github.com/radi-js/radi/issues/17","id":305825642,"number":17,"title":"Proposal for changes to API","user":{"login":"rafaelklaessen","id":15846964,"avatar_url":"https://avatars0.githubusercontent.com/u/15846964?v=4","gravatar_id":"","url":"https://api.github.com/users/rafaelklaessen","html_url":"https://github.com/rafaelklaessen","followers_url":"https://api.github.com/users/rafaelklaessen/followers","following_url":"https://api.github.com/users/rafaelklaessen/following{/other_user}","gists_url":"https://api.github.com/users/rafaelklaessen/gists{/gist_id}","starred_url":"https://api.github.com/users/rafaelklaessen/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/rafaelklaessen/subscriptions","organizations_url":"https://api.github.com/users/rafaelklaessen/orgs","repos_url":"https://api.github.com/users/rafaelklaessen/repos","events_url":"https://api.github.com/users/rafaelklaessen/events{/privacy}","received_events_url":"https://api.github.com/users/rafaelklaessen/received_events","type":"User","site_admin":false},"labels":[{"id":869183477,"url":"https://api.github.com/repos/radi-js/radi/labels/proposal","name":"proposal","color":"f9a22f","default":false}],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":41,"created_at":"2018-03-16T07:20:41Z","updated_at":"2018-04-10T08:28:41Z","closed_at":null,"author_association":"NONE","body":"This is a proposal for changes to the user facing API of Radi.\r\nIt's just a proposal, take it with a grain of salt.\r\n\r\n- Add support for extending Radi's Component class rather than only being able to use `component`, eg:\r\n```javascript\r\nclass Counter extends Radi.Component {\r\n  view() {\r\n    return <h1>Foo</h1>\r\n  }\r\n}\r\n```\r\n- Reuse the npm prop-types package to provide a type checking system for props.\r\n- Add a map callback to Listener, which would be a shortcut for mapping arrays, but it would also enable for more efficient list rendering in the future.\r\n- Separate actions, mixins, props and state. So not `this.foo` but `this.state.foo`.\r\n- Provide shortcuts to the `l` function. Pass a `state` and `props` function to `view` so that you can do `state('foo')` rather than `l(component, 'state', 'foo')`. Only makes sense if the point above is applied.\r\n\r\nLet me know what you think! 😄 "},"comment":{"url":"https://api.github.com/repos/radi-js/radi/issues/comments/380018015","html_url":"https://github.com/radi-js/radi/issues/17#issuecomment-380018015","issue_url":"https://api.github.com/repos/radi-js/radi/issues/17","id":380018015,"user":{"login":"rafaelklaessen","id":15846964,"avatar_url":"https://avatars0.githubusercontent.com/u/15846964?v=4","gravatar_id":"","url":"https://api.github.com/users/rafaelklaessen","html_url":"https://github.com/rafaelklaessen","followers_url":"https://api.github.com/users/rafaelklaessen/followers","following_url":"https://api.github.com/users/rafaelklaessen/following{/other_user}","gists_url":"https://api.github.com/users/rafaelklaessen/gists{/gist_id}","starred_url":"https://api.github.com/users/rafaelklaessen/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/rafaelklaessen/subscriptions","organizations_url":"https://api.github.com/users/rafaelklaessen/orgs","repos_url":"https://api.github.com/users/rafaelklaessen/repos","events_url":"https://api.github.com/users/rafaelklaessen/events{/privacy}","received_events_url":"https://api.github.com/users/rafaelklaessen/received_events","type":"User","site_admin":false},"created_at":"2018-04-10T08:28:41Z","updated_at":"2018-04-10T08:28:41Z","author_association":"NONE","body":"I understand. You can do `this.state.foo.value` in such cases, like you said. I meant that with `this.state.foo` being a `Listener`, you don't have to use string paths."}}
{"actor":{"display_login":"rafaelklaessen"}}