{"action":"opened","number":442,"pull_request":{"url":"https://api.github.com/repos/zendeskgarden/react-components/pulls/442","id":314270782,"node_id":"MDExOlB1bGxSZXF1ZXN0MzE0MjcwNzgy","html_url":"https://github.com/zendeskgarden/react-components/pull/442","diff_url":"https://github.com/zendeskgarden/react-components/pull/442.diff","patch_url":"https://github.com/zendeskgarden/react-components/pull/442.patch","issue_url":"https://api.github.com/repos/zendeskgarden/react-components/issues/442","number":442,"state":"open","locked":false,"title":"feat(button): migrate react-buttons to TypeScript","user":{"login":"austin94","id":4030377,"node_id":"MDQ6VXNlcjQwMzAzNzc=","avatar_url":"https://avatars1.githubusercontent.com/u/4030377?v=4","gravatar_id":"","url":"https://api.github.com/users/austin94","html_url":"https://github.com/austin94","followers_url":"https://api.github.com/users/austin94/followers","following_url":"https://api.github.com/users/austin94/following{/other_user}","gists_url":"https://api.github.com/users/austin94/gists{/gist_id}","starred_url":"https://api.github.com/users/austin94/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/austin94/subscriptions","organizations_url":"https://api.github.com/users/austin94/orgs","repos_url":"https://api.github.com/users/austin94/repos","events_url":"https://api.github.com/users/austin94/events{/privacy}","received_events_url":"https://api.github.com/users/austin94/received_events","type":"User","site_admin":false},"body":"## Description\r\n\r\nThis PR migrates `react-buttons` to TypeScript. Overall, pretty straight-forward, but I have pointed out a few changes below that will affect other packages.\r\n\r\n## Detail\r\n\r\nThe `react-buttons` package leverages `React.forwardRef` heavily. The default type definition for `forwardRef` does not include the `WeakValidationMap<T>` value for `propTypes`. Since we want to support this value for our non-TS consumers I have pony-filled the `ForwardRefExoticComponent` definition with a custom `react.d.ts` in our utils folder.\r\n\r\n```ts\r\nimport { ForwardRefExoticComponent, NamedExoticComponent } from 'react';\r\n\r\ndeclare module 'react' {\r\n  /* eslint-disable-next-line */\r\n  export interface ForwardRefExoticComponent<P> extends NamedExoticComponent<P> {\r\n    defaultProps?: Partial<P>;\r\n    propTypes?: WeakValidationMap<P>;\r\n  }\r\n}\r\n```\r\n\r\nThis allows us to use `React.fowardRef` without type casting. This may be something we want to up-stream to DefinitelyTypes.\r\n\r\n## Checklist\r\n\r\n- [ ] :ok_hand: design updates are Garden Designer approved (add the\r\n      designer as a reviewer)\r\n- [ ] :nail_care: view component styling is based on a Garden CSS\r\n      component\r\n- [ ] :globe_with_meridians: Styleguidist demo is up-to-date (`yarn start`)\r\n- [ ] :arrow_left: renders as expected with reversed (RTL) direction\r\n- [ ] :wheelchair: analyzed via [axe](https://www.deque.com/axe/) and evaluated using VoiceOver\r\n- [ ] :guardsman: includes new unit tests\r\n- [ ] :memo: tested in Chrome, Firefox, Safari, Edge, and IE11\r\n","created_at":"2019-09-04T23:35:40Z","updated_at":"2019-09-04T23:35:40Z","closed_at":null,"merged_at":null,"merge_commit_sha":null,"assignee":null,"assignees":[],"requested_reviewers":[],"requested_teams":[{"name":"Maintainers","id":2593496,"node_id":"MDQ6VGVhbTI1OTM0OTY=","slug":"maintainers","description":"","privacy":"closed","url":"https://api.github.com/teams/2593496","html_url":"https://github.com/orgs/zendeskgarden/teams/maintainers","members_url":"https://api.github.com/teams/2593496/members{/member}","repositories_url":"https://api.github.com/teams/2593496/repos","permission":"pull"}],"labels":[],"milestone":null,"commits_url":"https://api.github.com/repos/zendeskgarden/react-components/pulls/442/commits","review_comments_url":"https://api.github.com/repos/zendeskgarden/react-components/pulls/442/comments","review_comment_url":"https://api.github.com/repos/zendeskgarden/react-components/pulls/comments{/number}","comments_url":"https://api.github.com/repos/zendeskgarden/react-components/issues/442/comments","statuses_url":"https://api.github.com/repos/zendeskgarden/react-components/statuses/d1fcbd4e234f9ec406abf6c14f4e87a73e2f53c4","head":{"label":"zendeskgarden:agreen/buttons-ts","ref":"agreen/buttons-ts","sha":"d1fcbd4e234f9ec406abf6c14f4e87a73e2f53c4","user":{"login":"zendeskgarden","id":9273473,"node_id":"MDEyOk9yZ2FuaXphdGlvbjkyNzM0NzM=","avatar_url":"https://avatars2.githubusercontent.com/u/9273473?v=4","gravatar_id":"","url":"https://api.github.com/users/zendeskgarden","html_url":"https://github.com/zendeskgarden","followers_url":"https://api.github.com/users/zendeskgarden/followers","following_url":"https://api.github.com/users/zendeskgarden/following{/other_user}","gists_url":"https://api.github.com/users/zendeskgarden/gists{/gist_id}","starred_url":"https://api.github.com/users/zendeskgarden/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/zendeskgarden/subscriptions","organizations_url":"https://api.github.com/users/zendeskgarden/orgs","repos_url":"https://api.github.com/users/zendeskgarden/repos","events_url":"https://api.github.com/users/zendeskgarden/events{/privacy}","received_events_url":"https://api.github.com/users/zendeskgarden/received_events","type":"Organization","site_admin":false},"repo":{"id":132498655,"node_id":"MDEwOlJlcG9zaXRvcnkxMzI0OTg2NTU=","name":"react-components","full_name":"zendeskgarden/react-components","private":false,"owner":{"login":"zendeskgarden","id":9273473,"node_id":"MDEyOk9yZ2FuaXphdGlvbjkyNzM0NzM=","avatar_url":"https://avatars2.githubusercontent.com/u/9273473?v=4","gravatar_id":"","url":"https://api.github.com/users/zendeskgarden","html_url":"https://github.com/zendeskgarden","followers_url":"https://api.github.com/users/zendeskgarden/followers","following_url":"https://api.github.com/users/zendeskgarden/following{/other_user}","gists_url":"https://api.github.com/users/zendeskgarden/gists{/gist_id}","starred_url":"https://api.github.com/users/zendeskgarden/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/zendeskgarden/subscriptions","organizations_url":"https://api.github.com/users/zendeskgarden/orgs","repos_url":"https://api.github.com/users/zendeskgarden/repos","events_url":"https://api.github.com/users/zendeskgarden/events{/privacy}","received_events_url":"https://api.github.com/users/zendeskgarden/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/zendeskgarden/react-components","description":":seedling: garden React components","fork":false,"url":"https://api.github.com/repos/zendeskgarden/react-components","forks_url":"https://api.github.com/repos/zendeskgarden/react-components/forks","keys_url":"https://api.github.com/repos/zendeskgarden/react-components/keys{/key_id}","collaborators_url":"https://api.github.com/repos/zendeskgarden/react-components/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/zendeskgarden/react-components/teams","hooks_url":"https://api.github.com/repos/zendeskgarden/react-components/hooks","issue_events_url":"https://api.github.com/repos/zendeskgarden/react-components/issues/events{/number}","events_url":"https://api.github.com/repos/zendeskgarden/react-components/events","assignees_url":"https://api.github.com/repos/zendeskgarden/react-components/assignees{/user}","branches_url":"https://api.github.com/repos/zendeskgarden/react-components/branches{/branch}","tags_url":"https://api.github.com/repos/zendeskgarden/react-components/tags","blobs_url":"https://api.github.com/repos/zendeskgarden/react-components/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/zendeskgarden/react-components/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/zendeskgarden/react-components/git/refs{/sha}","trees_url":"https://api.github.com/repos/zendeskgarden/react-components/git/trees{/sha}","statuses_url":"https://api.github.com/repos/zendeskgarden/react-components/statuses/{sha}","languages_url":"https://api.github.com/repos/zendeskgarden/react-components/languages","stargazers_url":"https://api.github.com/repos/zendeskgarden/react-components/stargazers","contributors_url":"https://api.github.com/repos/zendeskgarden/react-components/contributors","subscribers_url":"https://api.github.com/repos/zendeskgarden/react-components/subscribers","subscription_url":"https://api.github.com/repos/zendeskgarden/react-components/subscription","commits_url":"https://api.github.com/repos/zendeskgarden/react-components/commits{/sha}","git_commits_url":"https://api.github.com/repos/zendeskgarden/react-components/git/commits{/sha}","comments_url":"https://api.github.com/repos/zendeskgarden/react-components/comments{/number}","issue_comment_url":"https://api.github.com/repos/zendeskgarden/react-components/issues/comments{/number}","contents_url":"https://api.github.com/repos/zendeskgarden/react-components/contents/{+path}","compare_url":"https://api.github.com/repos/zendeskgarden/react-components/compare/{base}...{head}","merges_url":"https://api.github.com/repos/zendeskgarden/react-components/merges","archive_url":"https://api.github.com/repos/zendeskgarden/react-components/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/zendeskgarden/react-components/downloads","issues_url":"https://api.github.com/repos/zendeskgarden/react-components/issues{/number}","pulls_url":"https://api.github.com/repos/zendeskgarden/react-components/pulls{/number}","milestones_url":"https://api.github.com/repos/zendeskgarden/react-components/milestones{/number}","notifications_url":"https://api.github.com/repos/zendeskgarden/react-components/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/zendeskgarden/react-components/labels{/name}","releases_url":"https://api.github.com/repos/zendeskgarden/react-components/releases{/id}","deployments_url":"https://api.github.com/repos/zendeskgarden/react-components/deployments","created_at":"2018-05-07T18:10:06Z","updated_at":"2019-09-04T17:50:35Z","pushed_at":"2019-09-04T23:26:29Z","git_url":"git://github.com/zendeskgarden/react-components.git","ssh_url":"git@github.com:zendeskgarden/react-components.git","clone_url":"https://github.com/zendeskgarden/react-components.git","svn_url":"https://github.com/zendeskgarden/react-components","homepage":"https://zendeskgarden.github.io/react-components/","size":286387,"stargazers_count":670,"watchers_count":670,"language":"JavaScript","has_issues":true,"has_projects":false,"has_downloads":true,"has_wiki":false,"has_pages":true,"forks_count":38,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":19,"license":{"key":"apache-2.0","name":"Apache License 2.0","spdx_id":"Apache-2.0","url":"https://api.github.com/licenses/apache-2.0","node_id":"MDc6TGljZW5zZTI="},"forks":38,"open_issues":19,"watchers":670,"default_branch":"master"}},"base":{"label":"zendeskgarden:next","ref":"next","sha":"0baf24ca42dfa2ae042ab83349a456c36c9358e3","user":{"login":"zendeskgarden","id":9273473,"node_id":"MDEyOk9yZ2FuaXphdGlvbjkyNzM0NzM=","avatar_url":"https://avatars2.githubusercontent.com/u/9273473?v=4","gravatar_id":"","url":"https://api.github.com/users/zendeskgarden","html_url":"https://github.com/zendeskgarden","followers_url":"https://api.github.com/users/zendeskgarden/followers","following_url":"https://api.github.com/users/zendeskgarden/following{/other_user}","gists_url":"https://api.github.com/users/zendeskgarden/gists{/gist_id}","starred_url":"https://api.github.com/users/zendeskgarden/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/zendeskgarden/subscriptions","organizations_url":"https://api.github.com/users/zendeskgarden/orgs","repos_url":"https://api.github.com/users/zendeskgarden/repos","events_url":"https://api.github.com/users/zendeskgarden/events{/privacy}","received_events_url":"https://api.github.com/users/zendeskgarden/received_events","type":"Organization","site_admin":false},"repo":{"id":132498655,"node_id":"MDEwOlJlcG9zaXRvcnkxMzI0OTg2NTU=","name":"react-components","full_name":"zendeskgarden/react-components","private":false,"owner":{"login":"zendeskgarden","id":9273473,"node_id":"MDEyOk9yZ2FuaXphdGlvbjkyNzM0NzM=","avatar_url":"https://avatars2.githubusercontent.com/u/9273473?v=4","gravatar_id":"","url":"https://api.github.com/users/zendeskgarden","html_url":"https://github.com/zendeskgarden","followers_url":"https://api.github.com/users/zendeskgarden/followers","following_url":"https://api.github.com/users/zendeskgarden/following{/other_user}","gists_url":"https://api.github.com/users/zendeskgarden/gists{/gist_id}","starred_url":"https://api.github.com/users/zendeskgarden/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/zendeskgarden/subscriptions","organizations_url":"https://api.github.com/users/zendeskgarden/orgs","repos_url":"https://api.github.com/users/zendeskgarden/repos","events_url":"https://api.github.com/users/zendeskgarden/events{/privacy}","received_events_url":"https://api.github.com/users/zendeskgarden/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/zendeskgarden/react-components","description":":seedling: garden React components","fork":false,"url":"https://api.github.com/repos/zendeskgarden/react-components","forks_url":"https://api.github.com/repos/zendeskgarden/react-components/forks","keys_url":"https://api.github.com/repos/zendeskgarden/react-components/keys{/key_id}","collaborators_url":"https://api.github.com/repos/zendeskgarden/react-components/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/zendeskgarden/react-components/teams","hooks_url":"https://api.github.com/repos/zendeskgarden/react-components/hooks","issue_events_url":"https://api.github.com/repos/zendeskgarden/react-components/issues/events{/number}","events_url":"https://api.github.com/repos/zendeskgarden/react-components/events","assignees_url":"https://api.github.com/repos/zendeskgarden/react-components/assignees{/user}","branches_url":"https://api.github.com/repos/zendeskgarden/react-components/branches{/branch}","tags_url":"https://api.github.com/repos/zendeskgarden/react-components/tags","blobs_url":"https://api.github.com/repos/zendeskgarden/react-components/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/zendeskgarden/react-components/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/zendeskgarden/react-components/git/refs{/sha}","trees_url":"https://api.github.com/repos/zendeskgarden/react-components/git/trees{/sha}","statuses_url":"https://api.github.com/repos/zendeskgarden/react-components/statuses/{sha}","languages_url":"https://api.github.com/repos/zendeskgarden/react-components/languages","stargazers_url":"https://api.github.com/repos/zendeskgarden/react-components/stargazers","contributors_url":"https://api.github.com/repos/zendeskgarden/react-components/contributors","subscribers_url":"https://api.github.com/repos/zendeskgarden/react-components/subscribers","subscription_url":"https://api.github.com/repos/zendeskgarden/react-components/subscription","commits_url":"https://api.github.com/repos/zendeskgarden/react-components/commits{/sha}","git_commits_url":"https://api.github.com/repos/zendeskgarden/react-components/git/commits{/sha}","comments_url":"https://api.github.com/repos/zendeskgarden/react-components/comments{/number}","issue_comment_url":"https://api.github.com/repos/zendeskgarden/react-components/issues/comments{/number}","contents_url":"https://api.github.com/repos/zendeskgarden/react-components/contents/{+path}","compare_url":"https://api.github.com/repos/zendeskgarden/react-components/compare/{base}...{head}","merges_url":"https://api.github.com/repos/zendeskgarden/react-components/merges","archive_url":"https://api.github.com/repos/zendeskgarden/react-components/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/zendeskgarden/react-components/downloads","issues_url":"https://api.github.com/repos/zendeskgarden/react-components/issues{/number}","pulls_url":"https://api.github.com/repos/zendeskgarden/react-components/pulls{/number}","milestones_url":"https://api.github.com/repos/zendeskgarden/react-components/milestones{/number}","notifications_url":"https://api.github.com/repos/zendeskgarden/react-components/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/zendeskgarden/react-components/labels{/name}","releases_url":"https://api.github.com/repos/zendeskgarden/react-components/releases{/id}","deployments_url":"https://api.github.com/repos/zendeskgarden/react-components/deployments","created_at":"2018-05-07T18:10:06Z","updated_at":"2019-09-04T17:50:35Z","pushed_at":"2019-09-04T23:26:29Z","git_url":"git://github.com/zendeskgarden/react-components.git","ssh_url":"git@github.com:zendeskgarden/react-components.git","clone_url":"https://github.com/zendeskgarden/react-components.git","svn_url":"https://github.com/zendeskgarden/react-components","homepage":"https://zendeskgarden.github.io/react-components/","size":286387,"stargazers_count":670,"watchers_count":670,"language":"JavaScript","has_issues":true,"has_projects":false,"has_downloads":true,"has_wiki":false,"has_pages":true,"forks_count":38,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":19,"license":{"key":"apache-2.0","name":"Apache License 2.0","spdx_id":"Apache-2.0","url":"https://api.github.com/licenses/apache-2.0","node_id":"MDc6TGljZW5zZTI="},"forks":38,"open_issues":19,"watchers":670,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/zendeskgarden/react-components/pulls/442"},"html":{"href":"https://github.com/zendeskgarden/react-components/pull/442"},"issue":{"href":"https://api.github.com/repos/zendeskgarden/react-components/issues/442"},"comments":{"href":"https://api.github.com/repos/zendeskgarden/react-components/issues/442/comments"},"review_comments":{"href":"https://api.github.com/repos/zendeskgarden/react-components/pulls/442/comments"},"review_comment":{"href":"https://api.github.com/repos/zendeskgarden/react-components/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/zendeskgarden/react-components/pulls/442/commits"},"statuses":{"href":"https://api.github.com/repos/zendeskgarden/react-components/statuses/d1fcbd4e234f9ec406abf6c14f4e87a73e2f53c4"}},"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":2,"additions":405,"deletions":647,"changed_files":38}}
{"actor":{"display_login":"austin94"}}