{"action":"created","issue":{"url":"https://api.github.com/repos/urbit/talk/issues/22","repository_url":"https://api.github.com/repos/urbit/talk","labels_url":"https://api.github.com/repos/urbit/talk/issues/22/labels{/name}","comments_url":"https://api.github.com/repos/urbit/talk/issues/22/comments","events_url":"https://api.github.com/repos/urbit/talk/issues/22/events","html_url":"https://github.com/urbit/talk/pull/22","id":160770568,"number":22,"title":"Calculate speech height based on text width","user":{"login":"knubie","id":431251,"avatar_url":"https://avatars.githubusercontent.com/u/431251?v=3","gravatar_id":"","url":"https://api.github.com/users/knubie","html_url":"https://github.com/knubie","followers_url":"https://api.github.com/users/knubie/followers","following_url":"https://api.github.com/users/knubie/following{/other_user}","gists_url":"https://api.github.com/users/knubie/gists{/gist_id}","starred_url":"https://api.github.com/users/knubie/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/knubie/subscriptions","organizations_url":"https://api.github.com/users/knubie/orgs","repos_url":"https://api.github.com/users/knubie/repos","events_url":"https://api.github.com/users/knubie/events{/privacy}","received_events_url":"https://api.github.com/users/knubie/received_events","type":"User","site_admin":false},"labels":[],"state":"closed","locked":false,"assignee":null,"milestone":null,"comments":9,"created_at":"2016-06-16T21:57:27Z","updated_at":"2016-06-20T22:24:45Z","closed_at":"2016-06-20T19:34:55Z","pull_request":{"url":"https://api.github.com/repos/urbit/talk/pulls/22","html_url":"https://github.com/urbit/talk/pull/22","diff_url":"https://github.com/urbit/talk/pull/22.diff","patch_url":"https://github.com/urbit/talk/pull/22.patch"},"body":"Fixes urbit/talk#17\r\n\r\nSo to make a long story short, the react-infinite-any-height repo is just a small wrapper around react-infinite that uses a strategy similar to what I described in #17. That strategy doesn't really work for :talk due to the nature of scrolling bottom to top.\r\n\r\nThis PR uses canvas to calculate the length of text, which is actually pretty accurate and doesn't require any DOM manipulation (only downside is you have to break the text manually). \r\n\r\nTested this on a number of viewport sizes / message text, but could always use more testing.\r\n\r\nAt some point might want to move these calculations outside of `render()` and put them in the `state` to avoid expensive re-renders and having to use `forceUpdate`."},"comment":{"url":"https://api.github.com/repos/urbit/talk/issues/comments/227288509","html_url":"https://github.com/urbit/talk/pull/22#issuecomment-227288509","issue_url":"https://api.github.com/repos/urbit/talk/issues/22","id":227288509,"user":{"login":"galenwp","id":1467211,"avatar_url":"https://avatars.githubusercontent.com/u/1467211?v=3","gravatar_id":"","url":"https://api.github.com/users/galenwp","html_url":"https://github.com/galenwp","followers_url":"https://api.github.com/users/galenwp/followers","following_url":"https://api.github.com/users/galenwp/following{/other_user}","gists_url":"https://api.github.com/users/galenwp/gists{/gist_id}","starred_url":"https://api.github.com/users/galenwp/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/galenwp/subscriptions","organizations_url":"https://api.github.com/users/galenwp/orgs","repos_url":"https://api.github.com/users/galenwp/repos","events_url":"https://api.github.com/users/galenwp/events{/privacy}","received_events_url":"https://api.github.com/users/galenwp/received_events","type":"User","site_admin":false},"created_at":"2016-06-20T22:24:45Z","updated_at":"2016-06-20T22:24:45Z","body":"Thanks! "}}
{"actor":{"display_login":"galenwp"}}