{"action":"created","issue":{"url":"https://api.github.com/repos/facebook/react-native/issues/4205","labels_url":"https://api.github.com/repos/facebook/react-native/issues/4205/labels{/name}","comments_url":"https://api.github.com/repos/facebook/react-native/issues/4205/comments","events_url":"https://api.github.com/repos/facebook/react-native/issues/4205/events","html_url":"https://github.com/facebook/react-native/pull/4205","id":117593874,"number":4205,"title":"UIRefreshControl added to scroll view","user":{"login":"EwanThomas","id":15156672,"avatar_url":"https://avatars.githubusercontent.com/u/15156672?v=3","gravatar_id":"","url":"https://api.github.com/users/EwanThomas","html_url":"https://github.com/EwanThomas","followers_url":"https://api.github.com/users/EwanThomas/followers","following_url":"https://api.github.com/users/EwanThomas/following{/other_user}","gists_url":"https://api.github.com/users/EwanThomas/gists{/gist_id}","starred_url":"https://api.github.com/users/EwanThomas/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/EwanThomas/subscriptions","organizations_url":"https://api.github.com/users/EwanThomas/orgs","repos_url":"https://api.github.com/users/EwanThomas/repos","events_url":"https://api.github.com/users/EwanThomas/events{/privacy}","received_events_url":"https://api.github.com/users/EwanThomas/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/facebook/react-native/labels/GH%20Review:%20review-needed","name":"GH Review: review-needed","color":"fbca04"}],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":24,"created_at":"2015-11-18T14:07:28Z","updated_at":"2015-11-19T14:10:51Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/facebook/react-native/pulls/4205","html_url":"https://github.com/facebook/react-native/pull/4205","diff_url":"https://github.com/facebook/react-native/pull/4205.diff","patch_url":"https://github.com/facebook/react-native/pull/4205.patch"},"body":"**What:**\r\n\r\nadds `onRefreshStart` property to `ScrollView.js` for displaying and activating pull to refresh.\r\n\r\n**Why:**\r\n\r\nJavascript implementations seemed a little flakey and inconsistent.  As you can see in the issues below:\r\n\r\nhttps://github.com/facebook/react-native/issues/2356\r\nhttps://github.com/facebook/react-native/issues/745\r\n\r\nSo this is an attempt a completely native implementation.\r\n\r\nWhat do you think?\r\n\r\n![Image of dog](http://i.imgur.com/HcTQnzJ.gif)"},"comment":{"url":"https://api.github.com/repos/facebook/react-native/issues/comments/158067746","html_url":"https://github.com/facebook/react-native/pull/4205#issuecomment-158067746","issue_url":"https://api.github.com/repos/facebook/react-native/issues/4205","id":158067746,"user":{"login":"pietropizzi","id":410305,"avatar_url":"https://avatars.githubusercontent.com/u/410305?v=3","gravatar_id":"","url":"https://api.github.com/users/pietropizzi","html_url":"https://github.com/pietropizzi","followers_url":"https://api.github.com/users/pietropizzi/followers","following_url":"https://api.github.com/users/pietropizzi/following{/other_user}","gists_url":"https://api.github.com/users/pietropizzi/gists{/gist_id}","starred_url":"https://api.github.com/users/pietropizzi/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pietropizzi/subscriptions","organizations_url":"https://api.github.com/users/pietropizzi/orgs","repos_url":"https://api.github.com/users/pietropizzi/repos","events_url":"https://api.github.com/users/pietropizzi/events{/privacy}","received_events_url":"https://api.github.com/users/pietropizzi/received_events","type":"User","site_admin":false},"created_at":"2015-11-19T14:10:50Z","updated_at":"2015-11-19T14:10:50Z","body":"@nicklockwood \r\n\r\nWe are mostly trying to understand how to implement this without adding a new prop the JS `ScrollView`. Cause if we do this:\r\n\r\nWhen using our not yet created component:\r\n```js\r\n<RefreshableContainer onRefreshStart={(endRefreshing) => {\r\n  // After some time call endrefereshing\r\n  setTimeout(endRefreshing, 3000);\r\n}}>\r\n  <ScrollView />\r\n</RefreshableContainer>\r\n```\r\n\r\nit's render method:\r\n```js\r\nrender() {\r\n  return (\r\n    React.cloneElement(React.Children.only(this.props.children), {\r\n      onRefreshStart: this.props.onRefreshStart\r\n    })\r\n  );\r\n}\r\n```\r\n\r\nIs still end up adding `onRefreshStart` to the `ScrollView`. How else could you do it?\r\n\r\nWould you have a Native UI Component for `RefreshableContainer` that then talks to the Native ScrollView Component instead?"}}