{"action":"created","comment":{"url":"https://api.github.com/repos/PeerioTechnologies/peerio-mobile/pulls/comments/183991542","pull_request_review_id":115094756,"id":183991542,"diff_hunk":"@@ -211,26 +187,16 @@ export default class Files extends SafeComponent {\n                 vars.opacity54\n             );\n         }\n-\n         return (\n-            <View>\n-                <View style={container}>\n-                    {leftIcon}\n-                    <TextInput\n-                        underlineColorAndroid=\"transparent\"\n-                        value={fileState.findFilesText}\n-                        returnKeyType=\"done\"\n-                        onSubmitEditing={this.onSubmit}\n-                        onChangeText={text => { this.clean = !text.length; this.onChangeFindFilesText(text); }}\n-                        autoCapitalize=\"none\"\n-                        autoCorrect={false}\n-                        placeholder={tx('title_searchAllFiles')}\n-                        ref={ti => { this.textInput = ti; }}\n-                        style={placeholderStyle} />\n-                    {rightIcon}\n-                </View>\n-            </View>\n-        );\n+            <SearchBar\n+                textValue={fileState.findFilesText}\n+                placeholderText={tx('title_searchAllFiles')}\n+                onChangeText={text => { this.clean = !text.length; this.onChangeFindFilesText(text); }}\n+                onSubmit={this.onSubmit}\n+                leftIcon={leftIcon}\n+                rightIcon={rightIcon}\n+                ref={ti => { this.textInput = ti; }}","path":"app/components/files/files.js","position":95,"original_position":95,"commit_id":"70f043f44682b90516427e92a58e8ba92c3062a2","original_commit_id":"70f043f44682b90516427e92a58e8ba92c3062a2","user":{"login":"seavan","id":750359,"avatar_url":"https://avatars2.githubusercontent.com/u/750359?v=4","gravatar_id":"","url":"https://api.github.com/users/seavan","html_url":"https://github.com/seavan","followers_url":"https://api.github.com/users/seavan/followers","following_url":"https://api.github.com/users/seavan/following{/other_user}","gists_url":"https://api.github.com/users/seavan/gists{/gist_id}","starred_url":"https://api.github.com/users/seavan/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/seavan/subscriptions","organizations_url":"https://api.github.com/users/seavan/orgs","repos_url":"https://api.github.com/users/seavan/repos","events_url":"https://api.github.com/users/seavan/events{/privacy}","received_events_url":"https://api.github.com/users/seavan/received_events","type":"User","site_admin":false},"body":"should be bound, otherwise it'll re-render on every keystroke","created_at":"2018-04-25T09:17:54Z","updated_at":"2018-04-25T09:39:23Z","html_url":"https://github.com/PeerioTechnologies/peerio-mobile/pull/184#discussion_r183991542","pull_request_url":"https://api.github.com/repos/PeerioTechnologies/peerio-mobile/pulls/184","author_association":"COLLABORATOR","_links":{"self":{"href":"https://api.github.com/repos/PeerioTechnologies/peerio-mobile/pulls/comments/183991542"},"html":{"href":"https://github.com/PeerioTechnologies/peerio-mobile/pull/184#discussion_r183991542"},"pull_request":{"href":"https://api.github.com/repos/PeerioTechnologies/peerio-mobile/pulls/184"}}},"pull_request":{"url":"https://api.github.com/repos/PeerioTechnologies/peerio-mobile/pulls/184","id":183882205,"html_url":"https://github.com/PeerioTechnologies/peerio-mobile/pull/184","diff_url":"https://github.com/PeerioTechnologies/peerio-mobile/pull/184.diff","patch_url":"https://github.com/PeerioTechnologies/peerio-mobile/pull/184.patch","issue_url":"https://api.github.com/repos/PeerioTechnologies/peerio-mobile/issues/184","number":184,"state":"open","locked":false,"title":"Feat signup contact import","user":{"login":"Karim94","id":15848096,"avatar_url":"https://avatars0.githubusercontent.com/u/15848096?v=4","gravatar_id":"","url":"https://api.github.com/users/Karim94","html_url":"https://github.com/Karim94","followers_url":"https://api.github.com/users/Karim94/followers","following_url":"https://api.github.com/users/Karim94/following{/other_user}","gists_url":"https://api.github.com/users/Karim94/gists{/gist_id}","starred_url":"https://api.github.com/users/Karim94/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Karim94/subscriptions","organizations_url":"https://api.github.com/users/Karim94/orgs","repos_url":"https://api.github.com/users/Karim94/repos","events_url":"https://api.github.com/users/Karim94/events{/privacy}","received_events_url":"https://api.github.com/users/Karim94/received_events","type":"User","site_admin":false},"body":"#### Relevant info and issue/PR links \r\nhttps://app.clubhouse.io/peerio/story/5828/mobile-import-contacts-signup-step-1\r\nhttps://app.clubhouse.io/peerio/story/5832/mobile-contact-import-selector-for-people-already-on-peerio-2\r\nhttps://app.clubhouse.io/peerio/story/5835/mobile-contact-import-invite-people-selector-3\r\n#### Testing instructions  \r\nNote: After \"I have saved my account key\", the account is created. Closing the app when you're on the \"sync contacts start\" screen and re-opening it will log you in normally (as if you skipped the sync contact screen)\r\n#### Contact add screen:\r\n1- make sure that all selected contacts get added after pressing `add` and finishing the flow.\r\n2- make sure that `skip` causes no contacts to be added\r\n#### Contact invite screen:\r\n1- make sure that all selected contacts get invited after pressing `invite` and finishing the flow. Invites on staging are sent to `florencia.hv` in mailinator, use it to confirm that the correct invites were sent to only the selected addresses.\r\n2- make sure that `skip` causes no contacts to be invited\r\n\r\n#### TODO:\r\nThings left TODO are marked throughout the changed files, but here are the main things (sorted by my estimated priority and split into \"Functionality\" or \"Performance\"):\r\n##### Functionality:\r\n1- Skip contact add screen if user does not have any \"phone contact emails\" who are on Peerio.\r\n2- Skip contact invite screen if user does not have any \"phone contact emails\" who are on not Peerio.\r\n3- We can't determine how many users were invited by using `contactState.store.invitedContacts.length`. We can hack this by using `number of selected contacts` instead, but this assumes that all invites were successfully sent. Note: We need to determine the number of invites sent in order to give user feedback in the snackbar.\r\n##### Performance:\r\n4- Activity indicators to show users that lists are loading. I couldn't find a way to indicate to the user that contacts are still loading, since we only add contacts to the list one by one after each is done loading.\r\n5- Find a more efficient way to refresh the list. It currently re-renders the entire list whenever anything is changed (adding a contact, selecting, deselecting, etc ...)\r\n6- Server bulks requests\r\n\r\n----\r\n### Repository owner\r\n\r\n- [ ] Was tested and can be merged.\r\n- [ ] PR name follows conventional changelog format.\r\n\r\n[PR guideline](https://github.com/PeerioTechnologies/peerio-icebear/blob/dev/docs/CONTRIBUTING.md)\r\n","created_at":"2018-04-24T22:31:19Z","updated_at":"2018-04-25T09:39:23Z","closed_at":null,"merged_at":null,"merge_commit_sha":"68d849063dc28cc106ae006e6eecbe6b21d0940e","assignee":null,"assignees":[],"requested_reviewers":[],"requested_teams":[],"labels":[],"milestone":null,"commits_url":"https://api.github.com/repos/PeerioTechnologies/peerio-mobile/pulls/184/commits","review_comments_url":"https://api.github.com/repos/PeerioTechnologies/peerio-mobile/pulls/184/comments","review_comment_url":"https://api.github.com/repos/PeerioTechnologies/peerio-mobile/pulls/comments{/number}","comments_url":"https://api.github.com/repos/PeerioTechnologies/peerio-mobile/issues/184/comments","statuses_url":"https://api.github.com/repos/PeerioTechnologies/peerio-mobile/statuses/70f043f44682b90516427e92a58e8ba92c3062a2","head":{"label":"PeerioTechnologies:feat-signup-contact-import","ref":"feat-signup-contact-import","sha":"70f043f44682b90516427e92a58e8ba92c3062a2","user":{"login":"PeerioTechnologies","id":8494251,"avatar_url":"https://avatars3.githubusercontent.com/u/8494251?v=4","gravatar_id":"","url":"https://api.github.com/users/PeerioTechnologies","html_url":"https://github.com/PeerioTechnologies","followers_url":"https://api.github.com/users/PeerioTechnologies/followers","following_url":"https://api.github.com/users/PeerioTechnologies/following{/other_user}","gists_url":"https://api.github.com/users/PeerioTechnologies/gists{/gist_id}","starred_url":"https://api.github.com/users/PeerioTechnologies/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/PeerioTechnologies/subscriptions","organizations_url":"https://api.github.com/users/PeerioTechnologies/orgs","repos_url":"https://api.github.com/users/PeerioTechnologies/repos","events_url":"https://api.github.com/users/PeerioTechnologies/events{/privacy}","received_events_url":"https://api.github.com/users/PeerioTechnologies/received_events","type":"Organization","site_admin":false},"repo":{"id":63129246,"name":"peerio-mobile","full_name":"PeerioTechnologies/peerio-mobile","owner":{"login":"PeerioTechnologies","id":8494251,"avatar_url":"https://avatars3.githubusercontent.com/u/8494251?v=4","gravatar_id":"","url":"https://api.github.com/users/PeerioTechnologies","html_url":"https://github.com/PeerioTechnologies","followers_url":"https://api.github.com/users/PeerioTechnologies/followers","following_url":"https://api.github.com/users/PeerioTechnologies/following{/other_user}","gists_url":"https://api.github.com/users/PeerioTechnologies/gists{/gist_id}","starred_url":"https://api.github.com/users/PeerioTechnologies/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/PeerioTechnologies/subscriptions","organizations_url":"https://api.github.com/users/PeerioTechnologies/orgs","repos_url":"https://api.github.com/users/PeerioTechnologies/repos","events_url":"https://api.github.com/users/PeerioTechnologies/events{/privacy}","received_events_url":"https://api.github.com/users/PeerioTechnologies/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/PeerioTechnologies/peerio-mobile","description":"Peerio 2 for iOS & Android","fork":false,"url":"https://api.github.com/repos/PeerioTechnologies/peerio-mobile","forks_url":"https://api.github.com/repos/PeerioTechnologies/peerio-mobile/forks","keys_url":"https://api.github.com/repos/PeerioTechnologies/peerio-mobile/keys{/key_id}","collaborators_url":"https://api.github.com/repos/PeerioTechnologies/peerio-mobile/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/PeerioTechnologies/peerio-mobile/teams","hooks_url":"https://api.github.com/repos/PeerioTechnologies/peerio-mobile/hooks","issue_events_url":"https://api.github.com/repos/PeerioTechnologies/peerio-mobile/issues/events{/number}","events_url":"https://api.github.com/repos/PeerioTechnologies/peerio-mobile/events","assignees_url":"https://api.github.com/repos/PeerioTechnologies/peerio-mobile/assignees{/user}","branches_url":"https://api.github.com/repos/PeerioTechnologies/peerio-mobile/branches{/branch}","tags_url":"https://api.github.com/repos/PeerioTechnologies/peerio-mobile/tags","blobs_url":"https://api.github.com/repos/PeerioTechnologies/peerio-mobile/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/PeerioTechnologies/peerio-mobile/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/PeerioTechnologies/peerio-mobile/git/refs{/sha}","trees_url":"https://api.github.com/repos/PeerioTechnologies/peerio-mobile/git/trees{/sha}","statuses_url":"https://api.github.com/repos/PeerioTechnologies/peerio-mobile/statuses/{sha}","languages_url":"https://api.github.com/repos/PeerioTechnologies/peerio-mobile/languages","stargazers_url":"https://api.github.com/repos/PeerioTechnologies/peerio-mobile/stargazers","contributors_url":"https://api.github.com/repos/PeerioTechnologies/peerio-mobile/contributors","subscribers_url":"https://api.github.com/repos/PeerioTechnologies/peerio-mobile/subscribers","subscription_url":"https://api.github.com/repos/PeerioTechnologies/peerio-mobile/subscription","commits_url":"https://api.github.com/repos/PeerioTechnologies/peerio-mobile/commits{/sha}","git_commits_url":"https://api.github.com/repos/PeerioTechnologies/peerio-mobile/git/commits{/sha}","comments_url":"https://api.github.com/repos/PeerioTechnologies/peerio-mobile/comments{/number}","issue_comment_url":"https://api.github.com/repos/PeerioTechnologies/peerio-mobile/issues/comments{/number}","contents_url":"https://api.github.com/repos/PeerioTechnologies/peerio-mobile/contents/{+path}","compare_url":"https://api.github.com/repos/PeerioTechnologies/peerio-mobile/compare/{base}...{head}","merges_url":"https://api.github.com/repos/PeerioTechnologies/peerio-mobile/merges","archive_url":"https://api.github.com/repos/PeerioTechnologies/peerio-mobile/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/PeerioTechnologies/peerio-mobile/downloads","issues_url":"https://api.github.com/repos/PeerioTechnologies/peerio-mobile/issues{/number}","pulls_url":"https://api.github.com/repos/PeerioTechnologies/peerio-mobile/pulls{/number}","milestones_url":"https://api.github.com/repos/PeerioTechnologies/peerio-mobile/milestones{/number}","notifications_url":"https://api.github.com/repos/PeerioTechnologies/peerio-mobile/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/PeerioTechnologies/peerio-mobile/labels{/name}","releases_url":"https://api.github.com/repos/PeerioTechnologies/peerio-mobile/releases{/id}","deployments_url":"https://api.github.com/repos/PeerioTechnologies/peerio-mobile/deployments","created_at":"2016-07-12T05:32:51Z","updated_at":"2018-04-24T21:12:52Z","pushed_at":"2018-04-24T22:31:19Z","git_url":"git://github.com/PeerioTechnologies/peerio-mobile.git","ssh_url":"git@github.com:PeerioTechnologies/peerio-mobile.git","clone_url":"https://github.com/PeerioTechnologies/peerio-mobile.git","svn_url":"https://github.com/PeerioTechnologies/peerio-mobile","homepage":"https://peerio.com","size":30155,"stargazers_count":2,"watchers_count":2,"language":"JavaScript","has_issues":false,"has_projects":false,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":0,"mirror_url":null,"archived":false,"open_issues_count":11,"license":{"key":"gpl-3.0","name":"GNU General Public License v3.0","spdx_id":"GPL-3.0","url":"https://api.github.com/licenses/gpl-3.0"},"forks":0,"open_issues":11,"watchers":2,"default_branch":"dev"}},"base":{"label":"PeerioTechnologies:dev","ref":"dev","sha":"bd10ee7df9580896792fef117da4b531560e5dcc","user":{"login":"PeerioTechnologies","id":8494251,"avatar_url":"https://avatars3.githubusercontent.com/u/8494251?v=4","gravatar_id":"","url":"https://api.github.com/users/PeerioTechnologies","html_url":"https://github.com/PeerioTechnologies","followers_url":"https://api.github.com/users/PeerioTechnologies/followers","following_url":"https://api.github.com/users/PeerioTechnologies/following{/other_user}","gists_url":"https://api.github.com/users/PeerioTechnologies/gists{/gist_id}","starred_url":"https://api.github.com/users/PeerioTechnologies/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/PeerioTechnologies/subscriptions","organizations_url":"https://api.github.com/users/PeerioTechnologies/orgs","repos_url":"https://api.github.com/users/PeerioTechnologies/repos","events_url":"https://api.github.com/users/PeerioTechnologies/events{/privacy}","received_events_url":"https://api.github.com/users/PeerioTechnologies/received_events","type":"Organization","site_admin":false},"repo":{"id":63129246,"name":"peerio-mobile","full_name":"PeerioTechnologies/peerio-mobile","owner":{"login":"PeerioTechnologies","id":8494251,"avatar_url":"https://avatars3.githubusercontent.com/u/8494251?v=4","gravatar_id":"","url":"https://api.github.com/users/PeerioTechnologies","html_url":"https://github.com/PeerioTechnologies","followers_url":"https://api.github.com/users/PeerioTechnologies/followers","following_url":"https://api.github.com/users/PeerioTechnologies/following{/other_user}","gists_url":"https://api.github.com/users/PeerioTechnologies/gists{/gist_id}","starred_url":"https://api.github.com/users/PeerioTechnologies/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/PeerioTechnologies/subscriptions","organizations_url":"https://api.github.com/users/PeerioTechnologies/orgs","repos_url":"https://api.github.com/users/PeerioTechnologies/repos","events_url":"https://api.github.com/users/PeerioTechnologies/events{/privacy}","received_events_url":"https://api.github.com/users/PeerioTechnologies/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/PeerioTechnologies/peerio-mobile","description":"Peerio 2 for iOS & Android","fork":false,"url":"https://api.github.com/repos/PeerioTechnologies/peerio-mobile","forks_url":"https://api.github.com/repos/PeerioTechnologies/peerio-mobile/forks","keys_url":"https://api.github.com/repos/PeerioTechnologies/peerio-mobile/keys{/key_id}","collaborators_url":"https://api.github.com/repos/PeerioTechnologies/peerio-mobile/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/PeerioTechnologies/peerio-mobile/teams","hooks_url":"https://api.github.com/repos/PeerioTechnologies/peerio-mobile/hooks","issue_events_url":"https://api.github.com/repos/PeerioTechnologies/peerio-mobile/issues/events{/number}","events_url":"https://api.github.com/repos/PeerioTechnologies/peerio-mobile/events","assignees_url":"https://api.github.com/repos/PeerioTechnologies/peerio-mobile/assignees{/user}","branches_url":"https://api.github.com/repos/PeerioTechnologies/peerio-mobile/branches{/branch}","tags_url":"https://api.github.com/repos/PeerioTechnologies/peerio-mobile/tags","blobs_url":"https://api.github.com/repos/PeerioTechnologies/peerio-mobile/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/PeerioTechnologies/peerio-mobile/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/PeerioTechnologies/peerio-mobile/git/refs{/sha}","trees_url":"https://api.github.com/repos/PeerioTechnologies/peerio-mobile/git/trees{/sha}","statuses_url":"https://api.github.com/repos/PeerioTechnologies/peerio-mobile/statuses/{sha}","languages_url":"https://api.github.com/repos/PeerioTechnologies/peerio-mobile/languages","stargazers_url":"https://api.github.com/repos/PeerioTechnologies/peerio-mobile/stargazers","contributors_url":"https://api.github.com/repos/PeerioTechnologies/peerio-mobile/contributors","subscribers_url":"https://api.github.com/repos/PeerioTechnologies/peerio-mobile/subscribers","subscription_url":"https://api.github.com/repos/PeerioTechnologies/peerio-mobile/subscription","commits_url":"https://api.github.com/repos/PeerioTechnologies/peerio-mobile/commits{/sha}","git_commits_url":"https://api.github.com/repos/PeerioTechnologies/peerio-mobile/git/commits{/sha}","comments_url":"https://api.github.com/repos/PeerioTechnologies/peerio-mobile/comments{/number}","issue_comment_url":"https://api.github.com/repos/PeerioTechnologies/peerio-mobile/issues/comments{/number}","contents_url":"https://api.github.com/repos/PeerioTechnologies/peerio-mobile/contents/{+path}","compare_url":"https://api.github.com/repos/PeerioTechnologies/peerio-mobile/compare/{base}...{head}","merges_url":"https://api.github.com/repos/PeerioTechnologies/peerio-mobile/merges","archive_url":"https://api.github.com/repos/PeerioTechnologies/peerio-mobile/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/PeerioTechnologies/peerio-mobile/downloads","issues_url":"https://api.github.com/repos/PeerioTechnologies/peerio-mobile/issues{/number}","pulls_url":"https://api.github.com/repos/PeerioTechnologies/peerio-mobile/pulls{/number}","milestones_url":"https://api.github.com/repos/PeerioTechnologies/peerio-mobile/milestones{/number}","notifications_url":"https://api.github.com/repos/PeerioTechnologies/peerio-mobile/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/PeerioTechnologies/peerio-mobile/labels{/name}","releases_url":"https://api.github.com/repos/PeerioTechnologies/peerio-mobile/releases{/id}","deployments_url":"https://api.github.com/repos/PeerioTechnologies/peerio-mobile/deployments","created_at":"2016-07-12T05:32:51Z","updated_at":"2018-04-24T21:12:52Z","pushed_at":"2018-04-24T22:31:19Z","git_url":"git://github.com/PeerioTechnologies/peerio-mobile.git","ssh_url":"git@github.com:PeerioTechnologies/peerio-mobile.git","clone_url":"https://github.com/PeerioTechnologies/peerio-mobile.git","svn_url":"https://github.com/PeerioTechnologies/peerio-mobile","homepage":"https://peerio.com","size":30155,"stargazers_count":2,"watchers_count":2,"language":"JavaScript","has_issues":false,"has_projects":false,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":0,"mirror_url":null,"archived":false,"open_issues_count":11,"license":{"key":"gpl-3.0","name":"GNU General Public License v3.0","spdx_id":"GPL-3.0","url":"https://api.github.com/licenses/gpl-3.0"},"forks":0,"open_issues":11,"watchers":2,"default_branch":"dev"}},"_links":{"self":{"href":"https://api.github.com/repos/PeerioTechnologies/peerio-mobile/pulls/184"},"html":{"href":"https://github.com/PeerioTechnologies/peerio-mobile/pull/184"},"issue":{"href":"https://api.github.com/repos/PeerioTechnologies/peerio-mobile/issues/184"},"comments":{"href":"https://api.github.com/repos/PeerioTechnologies/peerio-mobile/issues/184/comments"},"review_comments":{"href":"https://api.github.com/repos/PeerioTechnologies/peerio-mobile/pulls/184/comments"},"review_comment":{"href":"https://api.github.com/repos/PeerioTechnologies/peerio-mobile/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/PeerioTechnologies/peerio-mobile/pulls/184/commits"},"statuses":{"href":"https://api.github.com/repos/PeerioTechnologies/peerio-mobile/statuses/70f043f44682b90516427e92a58e8ba92c3062a2"}},"author_association":"MEMBER"}}
{"actor":{"display_login":"seavan"}}