{"action":"created","comment":{"url":"https://api.github.com/repos/devtools-html/debugger.html/pulls/comments/76852508","id":76852508,"diff_hunk":"@@ -0,0 +1,663 @@\n+Debugger.html\r\n+=============\r\n+\r\n+Debugger.html is an open source project that is built on top of React and Redux that functions as a standalone debugger for Firefox, Chrome and Node.  The project is being tested currently in Firefox Nightly and is available in the DevTools debugger tab when the preference devtools.debugger.new-debugger-frontend is enabled. This project is being created to provide a debugger that is stand-alone and does not require a specific browser tool to do debugging.\n+\n+This document gives a detailed view of the components, actions and reducers that make up the debugger.html project. Prior knowledge of React and Redux  is suggested.\r\rReact documentation can be found [here](https://facebook.github.io/react/docs/getting-started.html).\rRedux documentation can be found [here](http://redux.js.org/).\r\rAs with most documentation related to code, this document may be out of date. The last edit date occurred on August 30, 2016.\r\n+\r\n+#Architecture\r\n+\r\n+\r\n+Debugger.html is a React-Redux based application — the UI is constructed using React Components. the follow illustration provides a simplictic high level view:\r\n+\r\n+![](https://docs.google.com/drawings/d/1JTDI-62CG29M37rpTGIDh70rOTuCmJf1VqxCKPe9zxM/pub?w=960&h=720)\n+[Click here to Edit](https://docs.google.com/drawings/d/1JTDI-62CG29M37rpTGIDh70rOTuCmJf1VqxCKPe9zxM/edit?usp=sharing)\n+\r\n+Application-critical objects are stored in one\r\n+global state object (housed in a Redux store) that some components have\r\n+access to. Many components are not aware of this state but are passed in\r\n+values to render using React properties.\r\n+\r\n+In the Debugger.html project we\r\n+also often use React’s setState to manage component local state. For\r\n+example, storing the state of a tree in the sources view or using it in\r\n+the App component to remember if the file search box is being displayed\r\n+(cmd-&gt;p).\r\n+\r\n+When a user\r\n+manipulates the UI, Redux Actions are fired to collect payload\r\n+data, which affects the state of the application for the given\r\n+operation. Actions set a specific type of operation for the store and\r\n+dispatch the event.\r\n+\r\n+Reducers handle all actions and decide the new\r\n+application state based on the action type. You can think of a reducer\r\n+as a set of functions that take a specific action type and the current\r\n+state of the app as parameters and returns the new state of the\r\n+application.\r\n+\r\n+The Store is a JavaScript object that contains and manages\r\n+the state of the application. After the Reducers create a new version\r\n+of the state, the store will fire a re-rendering of all the\r\n+components. Note that a new state is created every time — the old state\r\n+is not modified.\r\n+\r\n+React uses a Virtual DOM; only required changes to the\r\n+actual DOM will be rendered.\r\n+\r\n+#Component Presentation\r\n+\r\n+\r\n+Debbuger.html uses React Components to render portions of the\r\n+application. Each component’s source code is located under the\r\n+public/js/components folder. In this section we will cover how the\r","path":"docs/DebuggerHTML-Components-Reducers-Actions.md","position":53,"original_position":53,"commit_id":"5ea70c5dd00681086710037bef3a6461b83cbff7","original_commit_id":"5ea70c5dd00681086710037bef3a6461b83cbff7","user":{"login":"JasonWeathersby","id":1900315,"avatar_url":"https://avatars.githubusercontent.com/u/1900315?v=3","gravatar_id":"","url":"https://api.github.com/users/JasonWeathersby","html_url":"https://github.com/JasonWeathersby","followers_url":"https://api.github.com/users/JasonWeathersby/followers","following_url":"https://api.github.com/users/JasonWeathersby/following{/other_user}","gists_url":"https://api.github.com/users/JasonWeathersby/gists{/gist_id}","starred_url":"https://api.github.com/users/JasonWeathersby/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/JasonWeathersby/subscriptions","organizations_url":"https://api.github.com/users/JasonWeathersby/orgs","repos_url":"https://api.github.com/users/JasonWeathersby/repos","events_url":"https://api.github.com/users/JasonWeathersby/events{/privacy}","received_events_url":"https://api.github.com/users/JasonWeathersby/received_events","type":"User","site_admin":false},"body":"Yes. I just titled it that because they are primarily responsible for the UI","created_at":"2016-08-30T18:29:48Z","updated_at":"2016-08-30T18:29:48Z","html_url":"https://github.com/devtools-html/debugger.html/pull/629#discussion_r76852508","pull_request_url":"https://api.github.com/repos/devtools-html/debugger.html/pulls/629","_links":{"self":{"href":"https://api.github.com/repos/devtools-html/debugger.html/pulls/comments/76852508"},"html":{"href":"https://github.com/devtools-html/debugger.html/pull/629#discussion_r76852508"},"pull_request":{"href":"https://api.github.com/repos/devtools-html/debugger.html/pulls/629"}}},"pull_request":{"url":"https://api.github.com/repos/devtools-html/debugger.html/pulls/629","id":83316559,"html_url":"https://github.com/devtools-html/debugger.html/pull/629","diff_url":"https://github.com/devtools-html/debugger.html/pull/629.diff","patch_url":"https://github.com/devtools-html/debugger.html/pull/629.patch","issue_url":"https://api.github.com/repos/devtools-html/debugger.html/issues/629","number":629,"state":"open","locked":false,"title":"A doc to describe React/Redux Structure","user":{"login":"JasonWeathersby","id":1900315,"avatar_url":"https://avatars.githubusercontent.com/u/1900315?v=3","gravatar_id":"","url":"https://api.github.com/users/JasonWeathersby","html_url":"https://github.com/JasonWeathersby","followers_url":"https://api.github.com/users/JasonWeathersby/followers","following_url":"https://api.github.com/users/JasonWeathersby/following{/other_user}","gists_url":"https://api.github.com/users/JasonWeathersby/gists{/gist_id}","starred_url":"https://api.github.com/users/JasonWeathersby/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/JasonWeathersby/subscriptions","organizations_url":"https://api.github.com/users/JasonWeathersby/orgs","repos_url":"https://api.github.com/users/JasonWeathersby/repos","events_url":"https://api.github.com/users/JasonWeathersby/events{/privacy}","received_events_url":"https://api.github.com/users/JasonWeathersby/received_events","type":"User","site_admin":false},"body":"Overview doc with Actions, Reducers, Components explained.","created_at":"2016-08-30T17:51:26Z","updated_at":"2016-08-30T18:29:48Z","closed_at":null,"merged_at":null,"merge_commit_sha":"d709b751fd1aab17cf101b9bb565cd8e0a78ebaa","assignee":null,"assignees":[],"milestone":null,"commits_url":"https://api.github.com/repos/devtools-html/debugger.html/pulls/629/commits","review_comments_url":"https://api.github.com/repos/devtools-html/debugger.html/pulls/629/comments","review_comment_url":"https://api.github.com/repos/devtools-html/debugger.html/pulls/comments{/number}","comments_url":"https://api.github.com/repos/devtools-html/debugger.html/issues/629/comments","statuses_url":"https://api.github.com/repos/devtools-html/debugger.html/statuses/5ea70c5dd00681086710037bef3a6461b83cbff7","head":{"label":"JasonWeathersby:master","ref":"master","sha":"5ea70c5dd00681086710037bef3a6461b83cbff7","user":{"login":"JasonWeathersby","id":1900315,"avatar_url":"https://avatars.githubusercontent.com/u/1900315?v=3","gravatar_id":"","url":"https://api.github.com/users/JasonWeathersby","html_url":"https://github.com/JasonWeathersby","followers_url":"https://api.github.com/users/JasonWeathersby/followers","following_url":"https://api.github.com/users/JasonWeathersby/following{/other_user}","gists_url":"https://api.github.com/users/JasonWeathersby/gists{/gist_id}","starred_url":"https://api.github.com/users/JasonWeathersby/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/JasonWeathersby/subscriptions","organizations_url":"https://api.github.com/users/JasonWeathersby/orgs","repos_url":"https://api.github.com/users/JasonWeathersby/repos","events_url":"https://api.github.com/users/JasonWeathersby/events{/privacy}","received_events_url":"https://api.github.com/users/JasonWeathersby/received_events","type":"User","site_admin":false},"repo":{"id":64522157,"name":"debugger.html","full_name":"JasonWeathersby/debugger.html","owner":{"login":"JasonWeathersby","id":1900315,"avatar_url":"https://avatars.githubusercontent.com/u/1900315?v=3","gravatar_id":"","url":"https://api.github.com/users/JasonWeathersby","html_url":"https://github.com/JasonWeathersby","followers_url":"https://api.github.com/users/JasonWeathersby/followers","following_url":"https://api.github.com/users/JasonWeathersby/following{/other_user}","gists_url":"https://api.github.com/users/JasonWeathersby/gists{/gist_id}","starred_url":"https://api.github.com/users/JasonWeathersby/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/JasonWeathersby/subscriptions","organizations_url":"https://api.github.com/users/JasonWeathersby/orgs","repos_url":"https://api.github.com/users/JasonWeathersby/repos","events_url":"https://api.github.com/users/JasonWeathersby/events{/privacy}","received_events_url":"https://api.github.com/users/JasonWeathersby/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/JasonWeathersby/debugger.html","description":"An experimental debugger interface.","fork":true,"url":"https://api.github.com/repos/JasonWeathersby/debugger.html","forks_url":"https://api.github.com/repos/JasonWeathersby/debugger.html/forks","keys_url":"https://api.github.com/repos/JasonWeathersby/debugger.html/keys{/key_id}","collaborators_url":"https://api.github.com/repos/JasonWeathersby/debugger.html/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/JasonWeathersby/debugger.html/teams","hooks_url":"https://api.github.com/repos/JasonWeathersby/debugger.html/hooks","issue_events_url":"https://api.github.com/repos/JasonWeathersby/debugger.html/issues/events{/number}","events_url":"https://api.github.com/repos/JasonWeathersby/debugger.html/events","assignees_url":"https://api.github.com/repos/JasonWeathersby/debugger.html/assignees{/user}","branches_url":"https://api.github.com/repos/JasonWeathersby/debugger.html/branches{/branch}","tags_url":"https://api.github.com/repos/JasonWeathersby/debugger.html/tags","blobs_url":"https://api.github.com/repos/JasonWeathersby/debugger.html/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/JasonWeathersby/debugger.html/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/JasonWeathersby/debugger.html/git/refs{/sha}","trees_url":"https://api.github.com/repos/JasonWeathersby/debugger.html/git/trees{/sha}","statuses_url":"https://api.github.com/repos/JasonWeathersby/debugger.html/statuses/{sha}","languages_url":"https://api.github.com/repos/JasonWeathersby/debugger.html/languages","stargazers_url":"https://api.github.com/repos/JasonWeathersby/debugger.html/stargazers","contributors_url":"https://api.github.com/repos/JasonWeathersby/debugger.html/contributors","subscribers_url":"https://api.github.com/repos/JasonWeathersby/debugger.html/subscribers","subscription_url":"https://api.github.com/repos/JasonWeathersby/debugger.html/subscription","commits_url":"https://api.github.com/repos/JasonWeathersby/debugger.html/commits{/sha}","git_commits_url":"https://api.github.com/repos/JasonWeathersby/debugger.html/git/commits{/sha}","comments_url":"https://api.github.com/repos/JasonWeathersby/debugger.html/comments{/number}","issue_comment_url":"https://api.github.com/repos/JasonWeathersby/debugger.html/issues/comments{/number}","contents_url":"https://api.github.com/repos/JasonWeathersby/debugger.html/contents/{+path}","compare_url":"https://api.github.com/repos/JasonWeathersby/debugger.html/compare/{base}...{head}","merges_url":"https://api.github.com/repos/JasonWeathersby/debugger.html/merges","archive_url":"https://api.github.com/repos/JasonWeathersby/debugger.html/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/JasonWeathersby/debugger.html/downloads","issues_url":"https://api.github.com/repos/JasonWeathersby/debugger.html/issues{/number}","pulls_url":"https://api.github.com/repos/JasonWeathersby/debugger.html/pulls{/number}","milestones_url":"https://api.github.com/repos/JasonWeathersby/debugger.html/milestones{/number}","notifications_url":"https://api.github.com/repos/JasonWeathersby/debugger.html/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/JasonWeathersby/debugger.html/labels{/name}","releases_url":"https://api.github.com/repos/JasonWeathersby/debugger.html/releases{/id}","deployments_url":"https://api.github.com/repos/JasonWeathersby/debugger.html/deployments","created_at":"2016-07-30T02:35:20Z","updated_at":"2016-07-30T02:35:21Z","pushed_at":"2016-08-30T17:48:52Z","git_url":"git://github.com/JasonWeathersby/debugger.html.git","ssh_url":"git@github.com:JasonWeathersby/debugger.html.git","clone_url":"https://github.com/JasonWeathersby/debugger.html.git","svn_url":"https://github.com/JasonWeathersby/debugger.html","homepage":"","size":2035,"stargazers_count":0,"watchers_count":0,"language":"JavaScript","has_issues":false,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"open_issues_count":0,"forks":0,"open_issues":0,"watchers":0,"default_branch":"master"}},"base":{"label":"devtools-html:master","ref":"master","sha":"1df280036299ed236362f571669c6b04f0f8151c","user":{"login":"devtools-html","id":19979421,"avatar_url":"https://avatars.githubusercontent.com/u/19979421?v=3","gravatar_id":"","url":"https://api.github.com/users/devtools-html","html_url":"https://github.com/devtools-html","followers_url":"https://api.github.com/users/devtools-html/followers","following_url":"https://api.github.com/users/devtools-html/following{/other_user}","gists_url":"https://api.github.com/users/devtools-html/gists{/gist_id}","starred_url":"https://api.github.com/users/devtools-html/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/devtools-html/subscriptions","organizations_url":"https://api.github.com/users/devtools-html/orgs","repos_url":"https://api.github.com/users/devtools-html/repos","events_url":"https://api.github.com/users/devtools-html/events{/privacy}","received_events_url":"https://api.github.com/users/devtools-html/received_events","type":"Organization","site_admin":false},"repo":{"id":54585418,"name":"debugger.html","full_name":"devtools-html/debugger.html","owner":{"login":"devtools-html","id":19979421,"avatar_url":"https://avatars.githubusercontent.com/u/19979421?v=3","gravatar_id":"","url":"https://api.github.com/users/devtools-html","html_url":"https://github.com/devtools-html","followers_url":"https://api.github.com/users/devtools-html/followers","following_url":"https://api.github.com/users/devtools-html/following{/other_user}","gists_url":"https://api.github.com/users/devtools-html/gists{/gist_id}","starred_url":"https://api.github.com/users/devtools-html/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/devtools-html/subscriptions","organizations_url":"https://api.github.com/users/devtools-html/orgs","repos_url":"https://api.github.com/users/devtools-html/repos","events_url":"https://api.github.com/users/devtools-html/events{/privacy}","received_events_url":"https://api.github.com/users/devtools-html/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/devtools-html/debugger.html","description":"The Firefox debugger that works anywhere","fork":false,"url":"https://api.github.com/repos/devtools-html/debugger.html","forks_url":"https://api.github.com/repos/devtools-html/debugger.html/forks","keys_url":"https://api.github.com/repos/devtools-html/debugger.html/keys{/key_id}","collaborators_url":"https://api.github.com/repos/devtools-html/debugger.html/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/devtools-html/debugger.html/teams","hooks_url":"https://api.github.com/repos/devtools-html/debugger.html/hooks","issue_events_url":"https://api.github.com/repos/devtools-html/debugger.html/issues/events{/number}","events_url":"https://api.github.com/repos/devtools-html/debugger.html/events","assignees_url":"https://api.github.com/repos/devtools-html/debugger.html/assignees{/user}","branches_url":"https://api.github.com/repos/devtools-html/debugger.html/branches{/branch}","tags_url":"https://api.github.com/repos/devtools-html/debugger.html/tags","blobs_url":"https://api.github.com/repos/devtools-html/debugger.html/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/devtools-html/debugger.html/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/devtools-html/debugger.html/git/refs{/sha}","trees_url":"https://api.github.com/repos/devtools-html/debugger.html/git/trees{/sha}","statuses_url":"https://api.github.com/repos/devtools-html/debugger.html/statuses/{sha}","languages_url":"https://api.github.com/repos/devtools-html/debugger.html/languages","stargazers_url":"https://api.github.com/repos/devtools-html/debugger.html/stargazers","contributors_url":"https://api.github.com/repos/devtools-html/debugger.html/contributors","subscribers_url":"https://api.github.com/repos/devtools-html/debugger.html/subscribers","subscription_url":"https://api.github.com/repos/devtools-html/debugger.html/subscription","commits_url":"https://api.github.com/repos/devtools-html/debugger.html/commits{/sha}","git_commits_url":"https://api.github.com/repos/devtools-html/debugger.html/git/commits{/sha}","comments_url":"https://api.github.com/repos/devtools-html/debugger.html/comments{/number}","issue_comment_url":"https://api.github.com/repos/devtools-html/debugger.html/issues/comments{/number}","contents_url":"https://api.github.com/repos/devtools-html/debugger.html/contents/{+path}","compare_url":"https://api.github.com/repos/devtools-html/debugger.html/compare/{base}...{head}","merges_url":"https://api.github.com/repos/devtools-html/debugger.html/merges","archive_url":"https://api.github.com/repos/devtools-html/debugger.html/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/devtools-html/debugger.html/downloads","issues_url":"https://api.github.com/repos/devtools-html/debugger.html/issues{/number}","pulls_url":"https://api.github.com/repos/devtools-html/debugger.html/pulls{/number}","milestones_url":"https://api.github.com/repos/devtools-html/debugger.html/milestones{/number}","notifications_url":"https://api.github.com/repos/devtools-html/debugger.html/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/devtools-html/debugger.html/labels{/name}","releases_url":"https://api.github.com/repos/devtools-html/debugger.html/releases{/id}","deployments_url":"https://api.github.com/repos/devtools-html/debugger.html/deployments","created_at":"2016-03-23T18:55:36Z","updated_at":"2016-08-30T00:10:50Z","pushed_at":"2016-08-30T17:51:26Z","git_url":"git://github.com/devtools-html/debugger.html.git","ssh_url":"git@github.com:devtools-html/debugger.html.git","clone_url":"https://github.com/devtools-html/debugger.html.git","svn_url":"https://github.com/devtools-html/debugger.html","homepage":"","size":16713,"stargazers_count":151,"watchers_count":151,"language":"JavaScript","has_issues":true,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":32,"mirror_url":null,"open_issues_count":59,"forks":32,"open_issues":59,"watchers":151,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/devtools-html/debugger.html/pulls/629"},"html":{"href":"https://github.com/devtools-html/debugger.html/pull/629"},"issue":{"href":"https://api.github.com/repos/devtools-html/debugger.html/issues/629"},"comments":{"href":"https://api.github.com/repos/devtools-html/debugger.html/issues/629/comments"},"review_comments":{"href":"https://api.github.com/repos/devtools-html/debugger.html/pulls/629/comments"},"review_comment":{"href":"https://api.github.com/repos/devtools-html/debugger.html/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/devtools-html/debugger.html/pulls/629/commits"},"statuses":{"href":"https://api.github.com/repos/devtools-html/debugger.html/statuses/5ea70c5dd00681086710037bef3a6461b83cbff7"}}}}
{"actor":{"display_login":"JasonWeathersby"}}