{"action":"created","comment":{"url":"https://api.github.com/repos/matterhorn-chat/matterhorn/pulls/comments/157558245","pull_request_review_id":84219888,"id":157558245,"diff_hunk":"@@ -462,8 +463,9 @@ data Mode =\n     | PostListOverlay PostListContents\n     deriving (Eq)\n \n--- | We're either connected or we're not.\n-data ConnectionStatus = Connected | Disconnected\n+-- | We're either connected or we're not. If connected, keep the latest\n+-- | websocket action sequence number and the websocket itself.\n+data ConnectionStatus = Connected Int64 MMWebSocket | Disconnected","path":"src/Types.hs","position":24,"original_position":16,"commit_id":"69ad63534a06bdea72d7ee9b849b28fa1cc3f415","original_commit_id":"88d747f7b93e3159d6c0828c1c0577546a37a1ad","user":{"login":"jtdaugherty","id":427221,"avatar_url":"https://avatars0.githubusercontent.com/u/427221?v=4","gravatar_id":"","url":"https://api.github.com/users/jtdaugherty","html_url":"https://github.com/jtdaugherty","followers_url":"https://api.github.com/users/jtdaugherty/followers","following_url":"https://api.github.com/users/jtdaugherty/following{/other_user}","gists_url":"https://api.github.com/users/jtdaugherty/gists{/gist_id}","starred_url":"https://api.github.com/users/jtdaugherty/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jtdaugherty/subscriptions","organizations_url":"https://api.github.com/users/jtdaugherty/orgs","repos_url":"https://api.github.com/users/jtdaugherty/repos","events_url":"https://api.github.com/users/jtdaugherty/events{/privacy}","received_events_url":"https://api.github.com/users/jtdaugherty/received_events","type":"User","site_admin":false},"body":"Thank you!","created_at":"2017-12-18T18:07:03Z","updated_at":"2017-12-18T18:07:03Z","html_url":"https://github.com/matterhorn-chat/matterhorn/pull/344#discussion_r157558245","pull_request_url":"https://api.github.com/repos/matterhorn-chat/matterhorn/pulls/344","author_association":"OWNER","_links":{"self":{"href":"https://api.github.com/repos/matterhorn-chat/matterhorn/pulls/comments/157558245"},"html":{"href":"https://github.com/matterhorn-chat/matterhorn/pull/344#discussion_r157558245"},"pull_request":{"href":"https://api.github.com/repos/matterhorn-chat/matterhorn/pulls/344"}},"in_reply_to_id":157551321},"pull_request":{"url":"https://api.github.com/repos/matterhorn-chat/matterhorn/pulls/344","id":158860373,"html_url":"https://github.com/matterhorn-chat/matterhorn/pull/344","diff_url":"https://github.com/matterhorn-chat/matterhorn/pull/344.diff","patch_url":"https://github.com/matterhorn-chat/matterhorn/pull/344.patch","issue_url":"https://api.github.com/repos/matterhorn-chat/matterhorn/issues/344","number":344,"state":"open","locked":false,"title":"Show an indicator for users who are currently typing","user":{"login":"abhin4v","id":34121,"avatar_url":"https://avatars2.githubusercontent.com/u/34121?v=4","gravatar_id":"","url":"https://api.github.com/users/abhin4v","html_url":"https://github.com/abhin4v","followers_url":"https://api.github.com/users/abhin4v/followers","following_url":"https://api.github.com/users/abhin4v/following{/other_user}","gists_url":"https://api.github.com/users/abhin4v/gists{/gist_id}","starred_url":"https://api.github.com/users/abhin4v/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/abhin4v/subscriptions","organizations_url":"https://api.github.com/users/abhin4v/orgs","repos_url":"https://api.github.com/users/abhin4v/repos","events_url":"https://api.github.com/users/abhin4v/events{/privacy}","received_events_url":"https://api.github.com/users/abhin4v/received_events","type":"User","site_admin":false},"body":"### Adds user typing status to the UI\r\n- Adds per channel map to ChatState of users who are currently typing in the channel.\r\n- Adds an UI element to show the names of users who are currently typing.\r\n  - Shows user names if there are less than three users. Else says \"several people\".\r\n- Adds an event handler for the websocket typing event to update the typing users maps.\r\n- Adds a background thread to expire users from the typing users maps to remove the users who have stopped typing.\r\n\r\n### Adds support for sending user_typing actions to server\r\n- Send the user typing actions to the server over websocket for notifying other users.\r\n- A reference to the connected websocket is kept in the chat state to be able to send the actions over it.\r\n- The reference is refreshed automatically when the websocket is reconnected.\r\n\r\n### Adds a config to toggle user typing indicator\r\n- This config also toggles sending the user typing websocket actions.\r\n\r\nFixes Issue #343. Depends on https://github.com/matterhorn-chat/mattermost-api/pull/42.","created_at":"2017-12-18T09:04:06Z","updated_at":"2017-12-18T18:07:03Z","closed_at":null,"merged_at":null,"merge_commit_sha":"3901280f21ee078b11b1b6affb94d169a4a5b92d","assignee":null,"assignees":[],"requested_reviewers":[],"milestone":null,"commits_url":"https://api.github.com/repos/matterhorn-chat/matterhorn/pulls/344/commits","review_comments_url":"https://api.github.com/repos/matterhorn-chat/matterhorn/pulls/344/comments","review_comment_url":"https://api.github.com/repos/matterhorn-chat/matterhorn/pulls/comments{/number}","comments_url":"https://api.github.com/repos/matterhorn-chat/matterhorn/issues/344/comments","statuses_url":"https://api.github.com/repos/matterhorn-chat/matterhorn/statuses/69ad63534a06bdea72d7ee9b849b28fa1cc3f415","head":{"label":"abhin4v:feature/users-typing-status","ref":"feature/users-typing-status","sha":"69ad63534a06bdea72d7ee9b849b28fa1cc3f415","user":{"login":"abhin4v","id":34121,"avatar_url":"https://avatars2.githubusercontent.com/u/34121?v=4","gravatar_id":"","url":"https://api.github.com/users/abhin4v","html_url":"https://github.com/abhin4v","followers_url":"https://api.github.com/users/abhin4v/followers","following_url":"https://api.github.com/users/abhin4v/following{/other_user}","gists_url":"https://api.github.com/users/abhin4v/gists{/gist_id}","starred_url":"https://api.github.com/users/abhin4v/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/abhin4v/subscriptions","organizations_url":"https://api.github.com/users/abhin4v/orgs","repos_url":"https://api.github.com/users/abhin4v/repos","events_url":"https://api.github.com/users/abhin4v/events{/privacy}","received_events_url":"https://api.github.com/users/abhin4v/received_events","type":"User","site_admin":false},"repo":{"id":112151079,"name":"matterhorn","full_name":"abhin4v/matterhorn","owner":{"login":"abhin4v","id":34121,"avatar_url":"https://avatars2.githubusercontent.com/u/34121?v=4","gravatar_id":"","url":"https://api.github.com/users/abhin4v","html_url":"https://github.com/abhin4v","followers_url":"https://api.github.com/users/abhin4v/followers","following_url":"https://api.github.com/users/abhin4v/following{/other_user}","gists_url":"https://api.github.com/users/abhin4v/gists{/gist_id}","starred_url":"https://api.github.com/users/abhin4v/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/abhin4v/subscriptions","organizations_url":"https://api.github.com/users/abhin4v/orgs","repos_url":"https://api.github.com/users/abhin4v/repos","events_url":"https://api.github.com/users/abhin4v/events{/privacy}","received_events_url":"https://api.github.com/users/abhin4v/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/abhin4v/matterhorn","description":"A terminal client for the Mattermost chat system","fork":true,"url":"https://api.github.com/repos/abhin4v/matterhorn","forks_url":"https://api.github.com/repos/abhin4v/matterhorn/forks","keys_url":"https://api.github.com/repos/abhin4v/matterhorn/keys{/key_id}","collaborators_url":"https://api.github.com/repos/abhin4v/matterhorn/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/abhin4v/matterhorn/teams","hooks_url":"https://api.github.com/repos/abhin4v/matterhorn/hooks","issue_events_url":"https://api.github.com/repos/abhin4v/matterhorn/issues/events{/number}","events_url":"https://api.github.com/repos/abhin4v/matterhorn/events","assignees_url":"https://api.github.com/repos/abhin4v/matterhorn/assignees{/user}","branches_url":"https://api.github.com/repos/abhin4v/matterhorn/branches{/branch}","tags_url":"https://api.github.com/repos/abhin4v/matterhorn/tags","blobs_url":"https://api.github.com/repos/abhin4v/matterhorn/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/abhin4v/matterhorn/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/abhin4v/matterhorn/git/refs{/sha}","trees_url":"https://api.github.com/repos/abhin4v/matterhorn/git/trees{/sha}","statuses_url":"https://api.github.com/repos/abhin4v/matterhorn/statuses/{sha}","languages_url":"https://api.github.com/repos/abhin4v/matterhorn/languages","stargazers_url":"https://api.github.com/repos/abhin4v/matterhorn/stargazers","contributors_url":"https://api.github.com/repos/abhin4v/matterhorn/contributors","subscribers_url":"https://api.github.com/repos/abhin4v/matterhorn/subscribers","subscription_url":"https://api.github.com/repos/abhin4v/matterhorn/subscription","commits_url":"https://api.github.com/repos/abhin4v/matterhorn/commits{/sha}","git_commits_url":"https://api.github.com/repos/abhin4v/matterhorn/git/commits{/sha}","comments_url":"https://api.github.com/repos/abhin4v/matterhorn/comments{/number}","issue_comment_url":"https://api.github.com/repos/abhin4v/matterhorn/issues/comments{/number}","contents_url":"https://api.github.com/repos/abhin4v/matterhorn/contents/{+path}","compare_url":"https://api.github.com/repos/abhin4v/matterhorn/compare/{base}...{head}","merges_url":"https://api.github.com/repos/abhin4v/matterhorn/merges","archive_url":"https://api.github.com/repos/abhin4v/matterhorn/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/abhin4v/matterhorn/downloads","issues_url":"https://api.github.com/repos/abhin4v/matterhorn/issues{/number}","pulls_url":"https://api.github.com/repos/abhin4v/matterhorn/pulls{/number}","milestones_url":"https://api.github.com/repos/abhin4v/matterhorn/milestones{/number}","notifications_url":"https://api.github.com/repos/abhin4v/matterhorn/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/abhin4v/matterhorn/labels{/name}","releases_url":"https://api.github.com/repos/abhin4v/matterhorn/releases{/id}","deployments_url":"https://api.github.com/repos/abhin4v/matterhorn/deployments","created_at":"2017-11-27T05:23:08Z","updated_at":"2017-11-27T05:23:10Z","pushed_at":"2017-12-18T17:36:08Z","git_url":"git://github.com/abhin4v/matterhorn.git","ssh_url":"git@github.com:abhin4v/matterhorn.git","clone_url":"https://github.com/abhin4v/matterhorn.git","svn_url":"https://github.com/abhin4v/matterhorn","homepage":"","size":1959,"stargazers_count":0,"watchers_count":0,"language":"Haskell","has_issues":false,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"archived":false,"open_issues_count":0,"license":null,"forks":0,"open_issues":0,"watchers":0,"default_branch":"master"}},"base":{"label":"matterhorn-chat:develop","ref":"develop","sha":"ad8e0b8cbb363c208fa623d1ba0e7cc10f13940e","user":{"login":"matterhorn-chat","id":23409525,"avatar_url":"https://avatars3.githubusercontent.com/u/23409525?v=4","gravatar_id":"","url":"https://api.github.com/users/matterhorn-chat","html_url":"https://github.com/matterhorn-chat","followers_url":"https://api.github.com/users/matterhorn-chat/followers","following_url":"https://api.github.com/users/matterhorn-chat/following{/other_user}","gists_url":"https://api.github.com/users/matterhorn-chat/gists{/gist_id}","starred_url":"https://api.github.com/users/matterhorn-chat/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/matterhorn-chat/subscriptions","organizations_url":"https://api.github.com/users/matterhorn-chat/orgs","repos_url":"https://api.github.com/users/matterhorn-chat/repos","events_url":"https://api.github.com/users/matterhorn-chat/events{/privacy}","received_events_url":"https://api.github.com/users/matterhorn-chat/received_events","type":"Organization","site_admin":false},"repo":{"id":66096261,"name":"matterhorn","full_name":"matterhorn-chat/matterhorn","owner":{"login":"matterhorn-chat","id":23409525,"avatar_url":"https://avatars3.githubusercontent.com/u/23409525?v=4","gravatar_id":"","url":"https://api.github.com/users/matterhorn-chat","html_url":"https://github.com/matterhorn-chat","followers_url":"https://api.github.com/users/matterhorn-chat/followers","following_url":"https://api.github.com/users/matterhorn-chat/following{/other_user}","gists_url":"https://api.github.com/users/matterhorn-chat/gists{/gist_id}","starred_url":"https://api.github.com/users/matterhorn-chat/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/matterhorn-chat/subscriptions","organizations_url":"https://api.github.com/users/matterhorn-chat/orgs","repos_url":"https://api.github.com/users/matterhorn-chat/repos","events_url":"https://api.github.com/users/matterhorn-chat/events{/privacy}","received_events_url":"https://api.github.com/users/matterhorn-chat/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/matterhorn-chat/matterhorn","description":"A terminal client for the Mattermost chat system","fork":false,"url":"https://api.github.com/repos/matterhorn-chat/matterhorn","forks_url":"https://api.github.com/repos/matterhorn-chat/matterhorn/forks","keys_url":"https://api.github.com/repos/matterhorn-chat/matterhorn/keys{/key_id}","collaborators_url":"https://api.github.com/repos/matterhorn-chat/matterhorn/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/matterhorn-chat/matterhorn/teams","hooks_url":"https://api.github.com/repos/matterhorn-chat/matterhorn/hooks","issue_events_url":"https://api.github.com/repos/matterhorn-chat/matterhorn/issues/events{/number}","events_url":"https://api.github.com/repos/matterhorn-chat/matterhorn/events","assignees_url":"https://api.github.com/repos/matterhorn-chat/matterhorn/assignees{/user}","branches_url":"https://api.github.com/repos/matterhorn-chat/matterhorn/branches{/branch}","tags_url":"https://api.github.com/repos/matterhorn-chat/matterhorn/tags","blobs_url":"https://api.github.com/repos/matterhorn-chat/matterhorn/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/matterhorn-chat/matterhorn/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/matterhorn-chat/matterhorn/git/refs{/sha}","trees_url":"https://api.github.com/repos/matterhorn-chat/matterhorn/git/trees{/sha}","statuses_url":"https://api.github.com/repos/matterhorn-chat/matterhorn/statuses/{sha}","languages_url":"https://api.github.com/repos/matterhorn-chat/matterhorn/languages","stargazers_url":"https://api.github.com/repos/matterhorn-chat/matterhorn/stargazers","contributors_url":"https://api.github.com/repos/matterhorn-chat/matterhorn/contributors","subscribers_url":"https://api.github.com/repos/matterhorn-chat/matterhorn/subscribers","subscription_url":"https://api.github.com/repos/matterhorn-chat/matterhorn/subscription","commits_url":"https://api.github.com/repos/matterhorn-chat/matterhorn/commits{/sha}","git_commits_url":"https://api.github.com/repos/matterhorn-chat/matterhorn/git/commits{/sha}","comments_url":"https://api.github.com/repos/matterhorn-chat/matterhorn/comments{/number}","issue_comment_url":"https://api.github.com/repos/matterhorn-chat/matterhorn/issues/comments{/number}","contents_url":"https://api.github.com/repos/matterhorn-chat/matterhorn/contents/{+path}","compare_url":"https://api.github.com/repos/matterhorn-chat/matterhorn/compare/{base}...{head}","merges_url":"https://api.github.com/repos/matterhorn-chat/matterhorn/merges","archive_url":"https://api.github.com/repos/matterhorn-chat/matterhorn/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/matterhorn-chat/matterhorn/downloads","issues_url":"https://api.github.com/repos/matterhorn-chat/matterhorn/issues{/number}","pulls_url":"https://api.github.com/repos/matterhorn-chat/matterhorn/pulls{/number}","milestones_url":"https://api.github.com/repos/matterhorn-chat/matterhorn/milestones{/number}","notifications_url":"https://api.github.com/repos/matterhorn-chat/matterhorn/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/matterhorn-chat/matterhorn/labels{/name}","releases_url":"https://api.github.com/repos/matterhorn-chat/matterhorn/releases{/id}","deployments_url":"https://api.github.com/repos/matterhorn-chat/matterhorn/deployments","created_at":"2016-08-19T16:25:54Z","updated_at":"2017-12-16T22:47:11Z","pushed_at":"2017-12-18T17:51:21Z","git_url":"git://github.com/matterhorn-chat/matterhorn.git","ssh_url":"git@github.com:matterhorn-chat/matterhorn.git","clone_url":"https://github.com/matterhorn-chat/matterhorn.git","svn_url":"https://github.com/matterhorn-chat/matterhorn","homepage":"","size":1993,"stargazers_count":233,"watchers_count":233,"language":"Haskell","has_issues":true,"has_projects":false,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":16,"mirror_url":null,"archived":false,"open_issues_count":45,"license":{"key":"bsd-3-clause","name":"BSD 3-clause \"New\" or \"Revised\" License","spdx_id":"BSD-3-Clause","url":"https://api.github.com/licenses/bsd-3-clause"},"forks":16,"open_issues":45,"watchers":233,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/matterhorn-chat/matterhorn/pulls/344"},"html":{"href":"https://github.com/matterhorn-chat/matterhorn/pull/344"},"issue":{"href":"https://api.github.com/repos/matterhorn-chat/matterhorn/issues/344"},"comments":{"href":"https://api.github.com/repos/matterhorn-chat/matterhorn/issues/344/comments"},"review_comments":{"href":"https://api.github.com/repos/matterhorn-chat/matterhorn/pulls/344/comments"},"review_comment":{"href":"https://api.github.com/repos/matterhorn-chat/matterhorn/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/matterhorn-chat/matterhorn/pulls/344/commits"},"statuses":{"href":"https://api.github.com/repos/matterhorn-chat/matterhorn/statuses/69ad63534a06bdea72d7ee9b849b28fa1cc3f415"}},"author_association":"CONTRIBUTOR"}}
{"actor":{"display_login":"jtdaugherty"}}