{"action":"created","issue":{"url":"https://api.github.com/repos/code-dot-org/code-dot-org/issues/8320","repository_url":"https://api.github.com/repos/code-dot-org/code-dot-org","labels_url":"https://api.github.com/repos/code-dot-org/code-dot-org/issues/8320/labels{/name}","comments_url":"https://api.github.com/repos/code-dot-org/code-dot-org/issues/8320/comments","events_url":"https://api.github.com/repos/code-dot-org/code-dot-org/issues/8320/events","html_url":"https://github.com/code-dot-org/code-dot-org/pull/8320","id":154114859,"number":8320,"title":"Move ScreenSelector into PhoneFrame","user":{"login":"Bjvanminnen","id":1767466,"avatar_url":"https://avatars.githubusercontent.com/u/1767466?v=3","gravatar_id":"","url":"https://api.github.com/users/Bjvanminnen","html_url":"https://github.com/Bjvanminnen","followers_url":"https://api.github.com/users/Bjvanminnen/followers","following_url":"https://api.github.com/users/Bjvanminnen/following{/other_user}","gists_url":"https://api.github.com/users/Bjvanminnen/gists{/gist_id}","starred_url":"https://api.github.com/users/Bjvanminnen/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Bjvanminnen/subscriptions","organizations_url":"https://api.github.com/users/Bjvanminnen/orgs","repos_url":"https://api.github.com/users/Bjvanminnen/repos","events_url":"https://api.github.com/users/Bjvanminnen/events{/privacy}","received_events_url":"https://api.github.com/users/Bjvanminnen/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":{"login":"islemaster","id":1615761,"avatar_url":"https://avatars.githubusercontent.com/u/1615761?v=3","gravatar_id":"","url":"https://api.github.com/users/islemaster","html_url":"https://github.com/islemaster","followers_url":"https://api.github.com/users/islemaster/followers","following_url":"https://api.github.com/users/islemaster/following{/other_user}","gists_url":"https://api.github.com/users/islemaster/gists{/gist_id}","starred_url":"https://api.github.com/users/islemaster/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/islemaster/subscriptions","organizations_url":"https://api.github.com/users/islemaster/orgs","repos_url":"https://api.github.com/users/islemaster/repos","events_url":"https://api.github.com/users/islemaster/events{/privacy}","received_events_url":"https://api.github.com/users/islemaster/received_events","type":"User","site_admin":false},"milestone":null,"comments":0,"created_at":"2016-05-10T21:48:50Z","updated_at":"2016-05-10T22:58:11Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/code-dot-org/code-dot-org/pulls/8320","html_url":"https://github.com/code-dot-org/code-dot-org/pull/8320","diff_url":"https://github.com/code-dot-org/code-dot-org/pull/8320.diff","patch_url":"https://github.com/code-dot-org/code-dot-org/pull/8320.patch"},"body":"While doing this, I also created a duck module for screens (though it still only stores currentScreenId right now), and managed to move some screen specific logic out of PlaySpaceHeader into ScreenSelector.\r\n\r\nI'd eventually like to move screenIds into redux (and createScreen as an action), but I think this is more difficult than I originally expected, because we have a lot of non-react managed DOM dependent on these.\r\n\r\n![image](https://cloud.githubusercontent.com/assets/1767466/15163594/301c05b0-16be-11e6-8771-78cd763b461e.png)\r\n\r\nThings I tested:\r\n- projects/applab\r\n- level in cspunit3\r\n- Behavior with experiment disabled\r\n- level that starts in design mode"},"comment":{"url":"https://api.github.com/repos/code-dot-org/code-dot-org/issues/comments/218316460","html_url":"https://github.com/code-dot-org/code-dot-org/pull/8320#issuecomment-218316460","issue_url":"https://api.github.com/repos/code-dot-org/code-dot-org/issues/8320","id":218316460,"user":{"login":"islemaster","id":1615761,"avatar_url":"https://avatars.githubusercontent.com/u/1615761?v=3","gravatar_id":"","url":"https://api.github.com/users/islemaster","html_url":"https://github.com/islemaster","followers_url":"https://api.github.com/users/islemaster/followers","following_url":"https://api.github.com/users/islemaster/following{/other_user}","gists_url":"https://api.github.com/users/islemaster/gists{/gist_id}","starred_url":"https://api.github.com/users/islemaster/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/islemaster/subscriptions","organizations_url":"https://api.github.com/users/islemaster/orgs","repos_url":"https://api.github.com/users/islemaster/repos","events_url":"https://api.github.com/users/islemaster/events{/privacy}","received_events_url":"https://api.github.com/users/islemaster/received_events","type":"User","site_admin":false},"created_at":"2016-05-10T22:58:11Z","updated_at":"2016-05-10T22:58:11Z","body":"I believe the hardest part about moving screens is that the DOM is the authoritative state for what screens exist right now."}}