{"action":"opened","number":36,"pull_request":{"url":"https://api.github.com/repos/isobar-us/redux-form-gen/pulls/36","id":228524126,"node_id":"MDExOlB1bGxSZXF1ZXN0MjI4NTI0MTI2","html_url":"https://github.com/isobar-us/redux-form-gen/pull/36","diff_url":"https://github.com/isobar-us/redux-form-gen/pull/36.diff","patch_url":"https://github.com/isobar-us/redux-form-gen/pull/36.patch","issue_url":"https://api.github.com/repos/isobar-us/redux-form-gen/issues/36","number":36,"state":"open","locked":false,"title":"Fix context propagation","user":{"login":"bmv437","id":1403707,"node_id":"MDQ6VXNlcjE0MDM3MDc=","avatar_url":"https://avatars0.githubusercontent.com/u/1403707?v=4","gravatar_id":"","url":"https://api.github.com/users/bmv437","html_url":"https://github.com/bmv437","followers_url":"https://api.github.com/users/bmv437/followers","following_url":"https://api.github.com/users/bmv437/following{/other_user}","gists_url":"https://api.github.com/users/bmv437/gists{/gist_id}","starred_url":"https://api.github.com/users/bmv437/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bmv437/subscriptions","organizations_url":"https://api.github.com/users/bmv437/orgs","repos_url":"https://api.github.com/users/bmv437/repos","events_url":"https://api.github.com/users/bmv437/events{/privacy}","received_events_url":"https://api.github.com/users/bmv437/received_events","type":"User","site_admin":false},"body":"### Are you submitting a **bug fix** or a **new feature**?\r\nBug Fix\r\n\r\n### What I did\r\n<!-- Include here any detailed explanation, related issues, links, etc. -->\r\nInitially we were using `shouldComponentUpdate` to ignore some props (specifically from the `_reduxForm` context which is coming in as a props) and prevent re-rendering. The side effect is that the old version of React context will not re-render if an ancestor returns false from `shouldComponentUpdate`, and `reduxForm` uses the old context version. The newer version of context using `React.createContext` does not suffer from this issue.\r\n\r\nWe had `shouldComponentUpdate`s implemented in `<FormGenerator />` and `<GenField />`, and these were returning false and preventing children which listened to the context from re-rendering when they should.\r\n\r\nThe solution presented here takes an alternate approach. Now we only subscribe to parts of the `_reduxForm` context, and pass those pieces in as individual props. This allows React to take control again to diff props and re-render when necessary. This also allows us to get rid of most of our `shouldComponentUpdate`s.\r\n\r\n### How to test\r\n<!-- If your answer is yes to any of these, please make sure to include it in your PR. -->\r\n\r\nIs this testable with jest?\r\nYes\r\n\r\nDoes this need a new example in storybook?\r\nNo\r\n\r\nDoes this need an update to the documentation?\r\nNo\r\n\r\n### PR Checklist\r\n* [x] Lint and tests passing (`yarn run check`)\r\n* [x] Formatted with prettier (`yarn run format`)\r\n","created_at":"2018-11-05T23:18:22Z","updated_at":"2018-11-05T23:18:22Z","closed_at":null,"merged_at":null,"merge_commit_sha":null,"assignee":null,"assignees":[],"requested_reviewers":[],"requested_teams":[],"labels":[],"milestone":null,"commits_url":"https://api.github.com/repos/isobar-us/redux-form-gen/pulls/36/commits","review_comments_url":"https://api.github.com/repos/isobar-us/redux-form-gen/pulls/36/comments","review_comment_url":"https://api.github.com/repos/isobar-us/redux-form-gen/pulls/comments{/number}","comments_url":"https://api.github.com/repos/isobar-us/redux-form-gen/issues/36/comments","statuses_url":"https://api.github.com/repos/isobar-us/redux-form-gen/statuses/d35f122bc432d6b97274b0f955389d48b86ed783","head":{"label":"isobar-us:feature/context-fixes","ref":"feature/context-fixes","sha":"d35f122bc432d6b97274b0f955389d48b86ed783","user":{"login":"isobar-us","id":17578292,"node_id":"MDEyOk9yZ2FuaXphdGlvbjE3NTc4Mjky","avatar_url":"https://avatars1.githubusercontent.com/u/17578292?v=4","gravatar_id":"","url":"https://api.github.com/users/isobar-us","html_url":"https://github.com/isobar-us","followers_url":"https://api.github.com/users/isobar-us/followers","following_url":"https://api.github.com/users/isobar-us/following{/other_user}","gists_url":"https://api.github.com/users/isobar-us/gists{/gist_id}","starred_url":"https://api.github.com/users/isobar-us/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/isobar-us/subscriptions","organizations_url":"https://api.github.com/users/isobar-us/orgs","repos_url":"https://api.github.com/users/isobar-us/repos","events_url":"https://api.github.com/users/isobar-us/events{/privacy}","received_events_url":"https://api.github.com/users/isobar-us/received_events","type":"Organization","site_admin":false},"repo":{"id":111137367,"node_id":"MDEwOlJlcG9zaXRvcnkxMTExMzczNjc=","name":"redux-form-gen","full_name":"isobar-us/redux-form-gen","private":false,"owner":{"login":"isobar-us","id":17578292,"node_id":"MDEyOk9yZ2FuaXphdGlvbjE3NTc4Mjky","avatar_url":"https://avatars1.githubusercontent.com/u/17578292?v=4","gravatar_id":"","url":"https://api.github.com/users/isobar-us","html_url":"https://github.com/isobar-us","followers_url":"https://api.github.com/users/isobar-us/followers","following_url":"https://api.github.com/users/isobar-us/following{/other_user}","gists_url":"https://api.github.com/users/isobar-us/gists{/gist_id}","starred_url":"https://api.github.com/users/isobar-us/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/isobar-us/subscriptions","organizations_url":"https://api.github.com/users/isobar-us/orgs","repos_url":"https://api.github.com/users/isobar-us/repos","events_url":"https://api.github.com/users/isobar-us/events{/privacy}","received_events_url":"https://api.github.com/users/isobar-us/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/isobar-us/redux-form-gen","description":"A pluggable form generator for redux-form","fork":false,"url":"https://api.github.com/repos/isobar-us/redux-form-gen","forks_url":"https://api.github.com/repos/isobar-us/redux-form-gen/forks","keys_url":"https://api.github.com/repos/isobar-us/redux-form-gen/keys{/key_id}","collaborators_url":"https://api.github.com/repos/isobar-us/redux-form-gen/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/isobar-us/redux-form-gen/teams","hooks_url":"https://api.github.com/repos/isobar-us/redux-form-gen/hooks","issue_events_url":"https://api.github.com/repos/isobar-us/redux-form-gen/issues/events{/number}","events_url":"https://api.github.com/repos/isobar-us/redux-form-gen/events","assignees_url":"https://api.github.com/repos/isobar-us/redux-form-gen/assignees{/user}","branches_url":"https://api.github.com/repos/isobar-us/redux-form-gen/branches{/branch}","tags_url":"https://api.github.com/repos/isobar-us/redux-form-gen/tags","blobs_url":"https://api.github.com/repos/isobar-us/redux-form-gen/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/isobar-us/redux-form-gen/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/isobar-us/redux-form-gen/git/refs{/sha}","trees_url":"https://api.github.com/repos/isobar-us/redux-form-gen/git/trees{/sha}","statuses_url":"https://api.github.com/repos/isobar-us/redux-form-gen/statuses/{sha}","languages_url":"https://api.github.com/repos/isobar-us/redux-form-gen/languages","stargazers_url":"https://api.github.com/repos/isobar-us/redux-form-gen/stargazers","contributors_url":"https://api.github.com/repos/isobar-us/redux-form-gen/contributors","subscribers_url":"https://api.github.com/repos/isobar-us/redux-form-gen/subscribers","subscription_url":"https://api.github.com/repos/isobar-us/redux-form-gen/subscription","commits_url":"https://api.github.com/repos/isobar-us/redux-form-gen/commits{/sha}","git_commits_url":"https://api.github.com/repos/isobar-us/redux-form-gen/git/commits{/sha}","comments_url":"https://api.github.com/repos/isobar-us/redux-form-gen/comments{/number}","issue_comment_url":"https://api.github.com/repos/isobar-us/redux-form-gen/issues/comments{/number}","contents_url":"https://api.github.com/repos/isobar-us/redux-form-gen/contents/{+path}","compare_url":"https://api.github.com/repos/isobar-us/redux-form-gen/compare/{base}...{head}","merges_url":"https://api.github.com/repos/isobar-us/redux-form-gen/merges","archive_url":"https://api.github.com/repos/isobar-us/redux-form-gen/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/isobar-us/redux-form-gen/downloads","issues_url":"https://api.github.com/repos/isobar-us/redux-form-gen/issues{/number}","pulls_url":"https://api.github.com/repos/isobar-us/redux-form-gen/pulls{/number}","milestones_url":"https://api.github.com/repos/isobar-us/redux-form-gen/milestones{/number}","notifications_url":"https://api.github.com/repos/isobar-us/redux-form-gen/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/isobar-us/redux-form-gen/labels{/name}","releases_url":"https://api.github.com/repos/isobar-us/redux-form-gen/releases{/id}","deployments_url":"https://api.github.com/repos/isobar-us/redux-form-gen/deployments","created_at":"2017-11-17T18:28:00Z","updated_at":"2018-10-22T20:42:10Z","pushed_at":"2018-11-05T23:03:36Z","git_url":"git://github.com/isobar-us/redux-form-gen.git","ssh_url":"git@github.com:isobar-us/redux-form-gen.git","clone_url":"https://github.com/isobar-us/redux-form-gen.git","svn_url":"https://github.com/isobar-us/redux-form-gen","homepage":"","size":2017,"stargazers_count":13,"watchers_count":13,"language":"JavaScript","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":3,"mirror_url":null,"archived":false,"open_issues_count":9,"license":{"key":"mit","name":"MIT License","spdx_id":"MIT","url":"https://api.github.com/licenses/mit","node_id":"MDc6TGljZW5zZTEz"},"forks":3,"open_issues":9,"watchers":13,"default_branch":"master"}},"base":{"label":"isobar-us:master","ref":"master","sha":"8a7c48924f64bce97992f99f3302a4d9c7d64a1f","user":{"login":"isobar-us","id":17578292,"node_id":"MDEyOk9yZ2FuaXphdGlvbjE3NTc4Mjky","avatar_url":"https://avatars1.githubusercontent.com/u/17578292?v=4","gravatar_id":"","url":"https://api.github.com/users/isobar-us","html_url":"https://github.com/isobar-us","followers_url":"https://api.github.com/users/isobar-us/followers","following_url":"https://api.github.com/users/isobar-us/following{/other_user}","gists_url":"https://api.github.com/users/isobar-us/gists{/gist_id}","starred_url":"https://api.github.com/users/isobar-us/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/isobar-us/subscriptions","organizations_url":"https://api.github.com/users/isobar-us/orgs","repos_url":"https://api.github.com/users/isobar-us/repos","events_url":"https://api.github.com/users/isobar-us/events{/privacy}","received_events_url":"https://api.github.com/users/isobar-us/received_events","type":"Organization","site_admin":false},"repo":{"id":111137367,"node_id":"MDEwOlJlcG9zaXRvcnkxMTExMzczNjc=","name":"redux-form-gen","full_name":"isobar-us/redux-form-gen","private":false,"owner":{"login":"isobar-us","id":17578292,"node_id":"MDEyOk9yZ2FuaXphdGlvbjE3NTc4Mjky","avatar_url":"https://avatars1.githubusercontent.com/u/17578292?v=4","gravatar_id":"","url":"https://api.github.com/users/isobar-us","html_url":"https://github.com/isobar-us","followers_url":"https://api.github.com/users/isobar-us/followers","following_url":"https://api.github.com/users/isobar-us/following{/other_user}","gists_url":"https://api.github.com/users/isobar-us/gists{/gist_id}","starred_url":"https://api.github.com/users/isobar-us/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/isobar-us/subscriptions","organizations_url":"https://api.github.com/users/isobar-us/orgs","repos_url":"https://api.github.com/users/isobar-us/repos","events_url":"https://api.github.com/users/isobar-us/events{/privacy}","received_events_url":"https://api.github.com/users/isobar-us/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/isobar-us/redux-form-gen","description":"A pluggable form generator for redux-form","fork":false,"url":"https://api.github.com/repos/isobar-us/redux-form-gen","forks_url":"https://api.github.com/repos/isobar-us/redux-form-gen/forks","keys_url":"https://api.github.com/repos/isobar-us/redux-form-gen/keys{/key_id}","collaborators_url":"https://api.github.com/repos/isobar-us/redux-form-gen/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/isobar-us/redux-form-gen/teams","hooks_url":"https://api.github.com/repos/isobar-us/redux-form-gen/hooks","issue_events_url":"https://api.github.com/repos/isobar-us/redux-form-gen/issues/events{/number}","events_url":"https://api.github.com/repos/isobar-us/redux-form-gen/events","assignees_url":"https://api.github.com/repos/isobar-us/redux-form-gen/assignees{/user}","branches_url":"https://api.github.com/repos/isobar-us/redux-form-gen/branches{/branch}","tags_url":"https://api.github.com/repos/isobar-us/redux-form-gen/tags","blobs_url":"https://api.github.com/repos/isobar-us/redux-form-gen/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/isobar-us/redux-form-gen/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/isobar-us/redux-form-gen/git/refs{/sha}","trees_url":"https://api.github.com/repos/isobar-us/redux-form-gen/git/trees{/sha}","statuses_url":"https://api.github.com/repos/isobar-us/redux-form-gen/statuses/{sha}","languages_url":"https://api.github.com/repos/isobar-us/redux-form-gen/languages","stargazers_url":"https://api.github.com/repos/isobar-us/redux-form-gen/stargazers","contributors_url":"https://api.github.com/repos/isobar-us/redux-form-gen/contributors","subscribers_url":"https://api.github.com/repos/isobar-us/redux-form-gen/subscribers","subscription_url":"https://api.github.com/repos/isobar-us/redux-form-gen/subscription","commits_url":"https://api.github.com/repos/isobar-us/redux-form-gen/commits{/sha}","git_commits_url":"https://api.github.com/repos/isobar-us/redux-form-gen/git/commits{/sha}","comments_url":"https://api.github.com/repos/isobar-us/redux-form-gen/comments{/number}","issue_comment_url":"https://api.github.com/repos/isobar-us/redux-form-gen/issues/comments{/number}","contents_url":"https://api.github.com/repos/isobar-us/redux-form-gen/contents/{+path}","compare_url":"https://api.github.com/repos/isobar-us/redux-form-gen/compare/{base}...{head}","merges_url":"https://api.github.com/repos/isobar-us/redux-form-gen/merges","archive_url":"https://api.github.com/repos/isobar-us/redux-form-gen/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/isobar-us/redux-form-gen/downloads","issues_url":"https://api.github.com/repos/isobar-us/redux-form-gen/issues{/number}","pulls_url":"https://api.github.com/repos/isobar-us/redux-form-gen/pulls{/number}","milestones_url":"https://api.github.com/repos/isobar-us/redux-form-gen/milestones{/number}","notifications_url":"https://api.github.com/repos/isobar-us/redux-form-gen/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/isobar-us/redux-form-gen/labels{/name}","releases_url":"https://api.github.com/repos/isobar-us/redux-form-gen/releases{/id}","deployments_url":"https://api.github.com/repos/isobar-us/redux-form-gen/deployments","created_at":"2017-11-17T18:28:00Z","updated_at":"2018-10-22T20:42:10Z","pushed_at":"2018-11-05T23:03:36Z","git_url":"git://github.com/isobar-us/redux-form-gen.git","ssh_url":"git@github.com:isobar-us/redux-form-gen.git","clone_url":"https://github.com/isobar-us/redux-form-gen.git","svn_url":"https://github.com/isobar-us/redux-form-gen","homepage":"","size":2017,"stargazers_count":13,"watchers_count":13,"language":"JavaScript","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":3,"mirror_url":null,"archived":false,"open_issues_count":9,"license":{"key":"mit","name":"MIT License","spdx_id":"MIT","url":"https://api.github.com/licenses/mit","node_id":"MDc6TGljZW5zZTEz"},"forks":3,"open_issues":9,"watchers":13,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/isobar-us/redux-form-gen/pulls/36"},"html":{"href":"https://github.com/isobar-us/redux-form-gen/pull/36"},"issue":{"href":"https://api.github.com/repos/isobar-us/redux-form-gen/issues/36"},"comments":{"href":"https://api.github.com/repos/isobar-us/redux-form-gen/issues/36/comments"},"review_comments":{"href":"https://api.github.com/repos/isobar-us/redux-form-gen/pulls/36/comments"},"review_comment":{"href":"https://api.github.com/repos/isobar-us/redux-form-gen/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/isobar-us/redux-form-gen/pulls/36/commits"},"statuses":{"href":"https://api.github.com/repos/isobar-us/redux-form-gen/statuses/d35f122bc432d6b97274b0f955389d48b86ed783"}},"author_association":"CONTRIBUTOR","merged":false,"mergeable":null,"rebaseable":null,"mergeable_state":"unknown","merged_by":null,"comments":0,"review_comments":0,"maintainer_can_modify":false,"commits":1,"additions":22,"deletions":30,"changed_files":4}}
{"actor":{"display_login":"bmv437"}}