{"action":"created","comment":{"url":"https://api.github.com/repos/learn-co-curriculum/react-presentation-components-lab/pulls/comments/78581575","id":78581575,"diff_hunk":"@@ -2,17 +2,68 @@\n \n ## Objectives\n \n-1. Practice defining stateless functions as React components\n-2. Practice using stateless functions as React components\n+1. Practice writing a presentation component with minimal UI state.\n+2. Practice writing a presentation component as a stateless function\n \n ## Overview\n \n-This lab should be pretty easy. We want to test that students know how to write\n-their own stateless functions as components (we should be able to test that they\n-spit out markup without backing instances) and that they can use them (we can\n-write a few components and ask students to include them in small widget-y\n-things).\n+Presentation component are also frequently called \"dumb\" components. Why? Because\n+other than rendering themselves, they really don't know how to do much else. But,\n+as we've seen, there's something blissful about being \"dumb\" if you are a component.\n \n-## Resources\n+![Dumb and Dumber](https://media.giphy.com/media/2dcW1Dlu2sZnW/giphy.gif)\n+\n+In this lab, we'll illustrate this principle by building two components:\n+a `DumbComponent` and a `DumberComponent`. Our `DumbComponent`, will be presentational,\n+but it will have a tiny bit of state and therefore it will be less stable than\n+our `DumberComponent` -- specifically our `DumbComponent` will experience wild\n+mood fluctuations. Our `DumberComponent`, meanwhile, will be written as a\n+\"stateless functional\" component and therefore it will be steadfastly happy.\n+\n+## DumbComponent\n+\n+The specs for our `DumbComponent` are as follows:\n+\n+1. In the `components/DumbComponent.js` file, create a `DumbComponent` component.\n+2. The component should be declared as a class (instance of `Component`) so\n+   that it can carry state.\n+3. The component should have a state property called `mood` that has a default\n+   value `happy`.\n+4. The component should simply render its current `mood` state to the page in\n+   a div.\n+5. The component should implement a `handleClick` function that can serve as a\n+   callback to the <div>'s click event. When clicked the component's mood \n+   should toggle between happy and sad states.\n+\n+The fact that this components mood fluctuates when clicked,\n+while part of our design, makes it a more unpredictable part of our UI. As our\n+program runs, and users interact with it, we won't be able to predict what\n+state our component is in. Obviously, many components need state -- because our\n+are UIs are interactive -- but where possible it's good to avoid\n+state entirely, as we will in the second component in this lab.\n \n+## DumberComponent\n+\n+Although our `DumbComponent` fits the pattern of a presentation component, the\n+fact that it has state makes it unstable. To practice building a more stable\n+type of presentational component, let's build a `DumberComponent` to meet the\n+following specifications:\n+\n+1. In the `components/DumberComponent.js` file, create a `DumberComponent` component.\n+2. The component should be a \"stateless functional\" component.\n+3. It should render a `<div>` to the page that contains the text: \"I am just happy\".\n+4. It should receiving one property called `handleClick` that sends a message","path":"README.md","position":62,"original_position":62,"commit_id":"62f0aeafb12a39dafcf032e8f4fc5dc2b368bfec","original_commit_id":"62f0aeafb12a39dafcf032e8f4fc5dc2b368bfec","user":{"login":"ezmiller","id":772738,"avatar_url":"https://avatars.githubusercontent.com/u/772738?v=3","gravatar_id":"","url":"https://api.github.com/users/ezmiller","html_url":"https://github.com/ezmiller","followers_url":"https://api.github.com/users/ezmiller/followers","following_url":"https://api.github.com/users/ezmiller/following{/other_user}","gists_url":"https://api.github.com/users/ezmiller/gists{/gist_id}","starred_url":"https://api.github.com/users/ezmiller/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ezmiller/subscriptions","organizations_url":"https://api.github.com/users/ezmiller/orgs","repos_url":"https://api.github.com/users/ezmiller/repos","events_url":"https://api.github.com/users/ezmiller/events{/privacy}","received_events_url":"https://api.github.com/users/ezmiller/received_events","type":"User","site_admin":false},"body":"n.b.","created_at":"2016-09-13T15:18:37Z","updated_at":"2016-09-13T15:18:38Z","html_url":"https://github.com/learn-co-curriculum/react-presentation-components-lab/pull/1#discussion_r78581575","pull_request_url":"https://api.github.com/repos/learn-co-curriculum/react-presentation-components-lab/pulls/1","_links":{"self":{"href":"https://api.github.com/repos/learn-co-curriculum/react-presentation-components-lab/pulls/comments/78581575"},"html":{"href":"https://github.com/learn-co-curriculum/react-presentation-components-lab/pull/1#discussion_r78581575"},"pull_request":{"href":"https://api.github.com/repos/learn-co-curriculum/react-presentation-components-lab/pulls/1"}}},"pull_request":{"url":"https://api.github.com/repos/learn-co-curriculum/react-presentation-components-lab/pulls/1","id":84883293,"html_url":"https://github.com/learn-co-curriculum/react-presentation-components-lab/pull/1","diff_url":"https://github.com/learn-co-curriculum/react-presentation-components-lab/pull/1.diff","patch_url":"https://github.com/learn-co-curriculum/react-presentation-components-lab/pull/1.patch","issue_url":"https://api.github.com/repos/learn-co-curriculum/react-presentation-components-lab/issues/1","number":1,"state":"open","locked":false,"title":"Add README and tests","user":{"login":"ezmiller","id":772738,"avatar_url":"https://avatars.githubusercontent.com/u/772738?v=3","gravatar_id":"","url":"https://api.github.com/users/ezmiller","html_url":"https://github.com/ezmiller","followers_url":"https://api.github.com/users/ezmiller/followers","following_url":"https://api.github.com/users/ezmiller/following{/other_user}","gists_url":"https://api.github.com/users/ezmiller/gists{/gist_id}","starred_url":"https://api.github.com/users/ezmiller/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ezmiller/subscriptions","organizations_url":"https://api.github.com/users/ezmiller/orgs","repos_url":"https://api.github.com/users/ezmiller/repos","events_url":"https://api.github.com/users/ezmiller/events{/privacy}","received_events_url":"https://api.github.com/users/ezmiller/received_events","type":"User","site_admin":false},"body":"@AnnJohn @thomastuts This is ready for review.","created_at":"2016-09-12T14:40:00Z","updated_at":"2016-09-13T15:18:38Z","closed_at":null,"merged_at":null,"merge_commit_sha":"65a15bd3a7860c3e3b0c8ac6d93b8cc7a12d34b8","assignee":{"login":"ezmiller","id":772738,"avatar_url":"https://avatars.githubusercontent.com/u/772738?v=3","gravatar_id":"","url":"https://api.github.com/users/ezmiller","html_url":"https://github.com/ezmiller","followers_url":"https://api.github.com/users/ezmiller/followers","following_url":"https://api.github.com/users/ezmiller/following{/other_user}","gists_url":"https://api.github.com/users/ezmiller/gists{/gist_id}","starred_url":"https://api.github.com/users/ezmiller/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ezmiller/subscriptions","organizations_url":"https://api.github.com/users/ezmiller/orgs","repos_url":"https://api.github.com/users/ezmiller/repos","events_url":"https://api.github.com/users/ezmiller/events{/privacy}","received_events_url":"https://api.github.com/users/ezmiller/received_events","type":"User","site_admin":false},"assignees":[{"login":"ezmiller","id":772738,"avatar_url":"https://avatars.githubusercontent.com/u/772738?v=3","gravatar_id":"","url":"https://api.github.com/users/ezmiller","html_url":"https://github.com/ezmiller","followers_url":"https://api.github.com/users/ezmiller/followers","following_url":"https://api.github.com/users/ezmiller/following{/other_user}","gists_url":"https://api.github.com/users/ezmiller/gists{/gist_id}","starred_url":"https://api.github.com/users/ezmiller/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ezmiller/subscriptions","organizations_url":"https://api.github.com/users/ezmiller/orgs","repos_url":"https://api.github.com/users/ezmiller/repos","events_url":"https://api.github.com/users/ezmiller/events{/privacy}","received_events_url":"https://api.github.com/users/ezmiller/received_events","type":"User","site_admin":false}],"milestone":null,"commits_url":"https://api.github.com/repos/learn-co-curriculum/react-presentation-components-lab/pulls/1/commits","review_comments_url":"https://api.github.com/repos/learn-co-curriculum/react-presentation-components-lab/pulls/1/comments","review_comment_url":"https://api.github.com/repos/learn-co-curriculum/react-presentation-components-lab/pulls/comments{/number}","comments_url":"https://api.github.com/repos/learn-co-curriculum/react-presentation-components-lab/issues/1/comments","statuses_url":"https://api.github.com/repos/learn-co-curriculum/react-presentation-components-lab/statuses/62f0aeafb12a39dafcf032e8f4fc5dc2b368bfec","head":{"label":"learn-co-curriculum:wip-master","ref":"wip-master","sha":"62f0aeafb12a39dafcf032e8f4fc5dc2b368bfec","user":{"login":"learn-co-curriculum","id":6208017,"avatar_url":"https://avatars.githubusercontent.com/u/6208017?v=3","gravatar_id":"","url":"https://api.github.com/users/learn-co-curriculum","html_url":"https://github.com/learn-co-curriculum","followers_url":"https://api.github.com/users/learn-co-curriculum/followers","following_url":"https://api.github.com/users/learn-co-curriculum/following{/other_user}","gists_url":"https://api.github.com/users/learn-co-curriculum/gists{/gist_id}","starred_url":"https://api.github.com/users/learn-co-curriculum/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/learn-co-curriculum/subscriptions","organizations_url":"https://api.github.com/users/learn-co-curriculum/orgs","repos_url":"https://api.github.com/users/learn-co-curriculum/repos","events_url":"https://api.github.com/users/learn-co-curriculum/events{/privacy}","received_events_url":"https://api.github.com/users/learn-co-curriculum/received_events","type":"Organization","site_admin":false},"repo":{"id":64872506,"name":"react-presentation-components-lab","full_name":"learn-co-curriculum/react-presentation-components-lab","owner":{"login":"learn-co-curriculum","id":6208017,"avatar_url":"https://avatars.githubusercontent.com/u/6208017?v=3","gravatar_id":"","url":"https://api.github.com/users/learn-co-curriculum","html_url":"https://github.com/learn-co-curriculum","followers_url":"https://api.github.com/users/learn-co-curriculum/followers","following_url":"https://api.github.com/users/learn-co-curriculum/following{/other_user}","gists_url":"https://api.github.com/users/learn-co-curriculum/gists{/gist_id}","starred_url":"https://api.github.com/users/learn-co-curriculum/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/learn-co-curriculum/subscriptions","organizations_url":"https://api.github.com/users/learn-co-curriculum/orgs","repos_url":"https://api.github.com/users/learn-co-curriculum/repos","events_url":"https://api.github.com/users/learn-co-curriculum/events{/privacy}","received_events_url":"https://api.github.com/users/learn-co-curriculum/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/learn-co-curriculum/react-presentation-components-lab","description":null,"fork":false,"url":"https://api.github.com/repos/learn-co-curriculum/react-presentation-components-lab","forks_url":"https://api.github.com/repos/learn-co-curriculum/react-presentation-components-lab/forks","keys_url":"https://api.github.com/repos/learn-co-curriculum/react-presentation-components-lab/keys{/key_id}","collaborators_url":"https://api.github.com/repos/learn-co-curriculum/react-presentation-components-lab/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/learn-co-curriculum/react-presentation-components-lab/teams","hooks_url":"https://api.github.com/repos/learn-co-curriculum/react-presentation-components-lab/hooks","issue_events_url":"https://api.github.com/repos/learn-co-curriculum/react-presentation-components-lab/issues/events{/number}","events_url":"https://api.github.com/repos/learn-co-curriculum/react-presentation-components-lab/events","assignees_url":"https://api.github.com/repos/learn-co-curriculum/react-presentation-components-lab/assignees{/user}","branches_url":"https://api.github.com/repos/learn-co-curriculum/react-presentation-components-lab/branches{/branch}","tags_url":"https://api.github.com/repos/learn-co-curriculum/react-presentation-components-lab/tags","blobs_url":"https://api.github.com/repos/learn-co-curriculum/react-presentation-components-lab/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/learn-co-curriculum/react-presentation-components-lab/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/learn-co-curriculum/react-presentation-components-lab/git/refs{/sha}","trees_url":"https://api.github.com/repos/learn-co-curriculum/react-presentation-components-lab/git/trees{/sha}","statuses_url":"https://api.github.com/repos/learn-co-curriculum/react-presentation-components-lab/statuses/{sha}","languages_url":"https://api.github.com/repos/learn-co-curriculum/react-presentation-components-lab/languages","stargazers_url":"https://api.github.com/repos/learn-co-curriculum/react-presentation-components-lab/stargazers","contributors_url":"https://api.github.com/repos/learn-co-curriculum/react-presentation-components-lab/contributors","subscribers_url":"https://api.github.com/repos/learn-co-curriculum/react-presentation-components-lab/subscribers","subscription_url":"https://api.github.com/repos/learn-co-curriculum/react-presentation-components-lab/subscription","commits_url":"https://api.github.com/repos/learn-co-curriculum/react-presentation-components-lab/commits{/sha}","git_commits_url":"https://api.github.com/repos/learn-co-curriculum/react-presentation-components-lab/git/commits{/sha}","comments_url":"https://api.github.com/repos/learn-co-curriculum/react-presentation-components-lab/comments{/number}","issue_comment_url":"https://api.github.com/repos/learn-co-curriculum/react-presentation-components-lab/issues/comments{/number}","contents_url":"https://api.github.com/repos/learn-co-curriculum/react-presentation-components-lab/contents/{+path}","compare_url":"https://api.github.com/repos/learn-co-curriculum/react-presentation-components-lab/compare/{base}...{head}","merges_url":"https://api.github.com/repos/learn-co-curriculum/react-presentation-components-lab/merges","archive_url":"https://api.github.com/repos/learn-co-curriculum/react-presentation-components-lab/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/learn-co-curriculum/react-presentation-components-lab/downloads","issues_url":"https://api.github.com/repos/learn-co-curriculum/react-presentation-components-lab/issues{/number}","pulls_url":"https://api.github.com/repos/learn-co-curriculum/react-presentation-components-lab/pulls{/number}","milestones_url":"https://api.github.com/repos/learn-co-curriculum/react-presentation-components-lab/milestones{/number}","notifications_url":"https://api.github.com/repos/learn-co-curriculum/react-presentation-components-lab/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/learn-co-curriculum/react-presentation-components-lab/labels{/name}","releases_url":"https://api.github.com/repos/learn-co-curriculum/react-presentation-components-lab/releases{/id}","deployments_url":"https://api.github.com/repos/learn-co-curriculum/react-presentation-components-lab/deployments","created_at":"2016-08-03T19:11:51Z","updated_at":"2016-09-09T10:32:08Z","pushed_at":"2016-09-12T14:40:25Z","git_url":"git://github.com/learn-co-curriculum/react-presentation-components-lab.git","ssh_url":"git@github.com:learn-co-curriculum/react-presentation-components-lab.git","clone_url":"https://github.com/learn-co-curriculum/react-presentation-components-lab.git","svn_url":"https://github.com/learn-co-curriculum/react-presentation-components-lab","homepage":null,"size":406,"stargazers_count":0,"watchers_count":0,"language":"JavaScript","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"open_issues_count":2,"forks":0,"open_issues":2,"watchers":0,"default_branch":"master"}},"base":{"label":"learn-co-curriculum:master","ref":"master","sha":"836240f0ee3d34c55bf0788ef736bd2c69a6c6c9","user":{"login":"learn-co-curriculum","id":6208017,"avatar_url":"https://avatars.githubusercontent.com/u/6208017?v=3","gravatar_id":"","url":"https://api.github.com/users/learn-co-curriculum","html_url":"https://github.com/learn-co-curriculum","followers_url":"https://api.github.com/users/learn-co-curriculum/followers","following_url":"https://api.github.com/users/learn-co-curriculum/following{/other_user}","gists_url":"https://api.github.com/users/learn-co-curriculum/gists{/gist_id}","starred_url":"https://api.github.com/users/learn-co-curriculum/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/learn-co-curriculum/subscriptions","organizations_url":"https://api.github.com/users/learn-co-curriculum/orgs","repos_url":"https://api.github.com/users/learn-co-curriculum/repos","events_url":"https://api.github.com/users/learn-co-curriculum/events{/privacy}","received_events_url":"https://api.github.com/users/learn-co-curriculum/received_events","type":"Organization","site_admin":false},"repo":{"id":64872506,"name":"react-presentation-components-lab","full_name":"learn-co-curriculum/react-presentation-components-lab","owner":{"login":"learn-co-curriculum","id":6208017,"avatar_url":"https://avatars.githubusercontent.com/u/6208017?v=3","gravatar_id":"","url":"https://api.github.com/users/learn-co-curriculum","html_url":"https://github.com/learn-co-curriculum","followers_url":"https://api.github.com/users/learn-co-curriculum/followers","following_url":"https://api.github.com/users/learn-co-curriculum/following{/other_user}","gists_url":"https://api.github.com/users/learn-co-curriculum/gists{/gist_id}","starred_url":"https://api.github.com/users/learn-co-curriculum/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/learn-co-curriculum/subscriptions","organizations_url":"https://api.github.com/users/learn-co-curriculum/orgs","repos_url":"https://api.github.com/users/learn-co-curriculum/repos","events_url":"https://api.github.com/users/learn-co-curriculum/events{/privacy}","received_events_url":"https://api.github.com/users/learn-co-curriculum/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/learn-co-curriculum/react-presentation-components-lab","description":null,"fork":false,"url":"https://api.github.com/repos/learn-co-curriculum/react-presentation-components-lab","forks_url":"https://api.github.com/repos/learn-co-curriculum/react-presentation-components-lab/forks","keys_url":"https://api.github.com/repos/learn-co-curriculum/react-presentation-components-lab/keys{/key_id}","collaborators_url":"https://api.github.com/repos/learn-co-curriculum/react-presentation-components-lab/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/learn-co-curriculum/react-presentation-components-lab/teams","hooks_url":"https://api.github.com/repos/learn-co-curriculum/react-presentation-components-lab/hooks","issue_events_url":"https://api.github.com/repos/learn-co-curriculum/react-presentation-components-lab/issues/events{/number}","events_url":"https://api.github.com/repos/learn-co-curriculum/react-presentation-components-lab/events","assignees_url":"https://api.github.com/repos/learn-co-curriculum/react-presentation-components-lab/assignees{/user}","branches_url":"https://api.github.com/repos/learn-co-curriculum/react-presentation-components-lab/branches{/branch}","tags_url":"https://api.github.com/repos/learn-co-curriculum/react-presentation-components-lab/tags","blobs_url":"https://api.github.com/repos/learn-co-curriculum/react-presentation-components-lab/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/learn-co-curriculum/react-presentation-components-lab/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/learn-co-curriculum/react-presentation-components-lab/git/refs{/sha}","trees_url":"https://api.github.com/repos/learn-co-curriculum/react-presentation-components-lab/git/trees{/sha}","statuses_url":"https://api.github.com/repos/learn-co-curriculum/react-presentation-components-lab/statuses/{sha}","languages_url":"https://api.github.com/repos/learn-co-curriculum/react-presentation-components-lab/languages","stargazers_url":"https://api.github.com/repos/learn-co-curriculum/react-presentation-components-lab/stargazers","contributors_url":"https://api.github.com/repos/learn-co-curriculum/react-presentation-components-lab/contributors","subscribers_url":"https://api.github.com/repos/learn-co-curriculum/react-presentation-components-lab/subscribers","subscription_url":"https://api.github.com/repos/learn-co-curriculum/react-presentation-components-lab/subscription","commits_url":"https://api.github.com/repos/learn-co-curriculum/react-presentation-components-lab/commits{/sha}","git_commits_url":"https://api.github.com/repos/learn-co-curriculum/react-presentation-components-lab/git/commits{/sha}","comments_url":"https://api.github.com/repos/learn-co-curriculum/react-presentation-components-lab/comments{/number}","issue_comment_url":"https://api.github.com/repos/learn-co-curriculum/react-presentation-components-lab/issues/comments{/number}","contents_url":"https://api.github.com/repos/learn-co-curriculum/react-presentation-components-lab/contents/{+path}","compare_url":"https://api.github.com/repos/learn-co-curriculum/react-presentation-components-lab/compare/{base}...{head}","merges_url":"https://api.github.com/repos/learn-co-curriculum/react-presentation-components-lab/merges","archive_url":"https://api.github.com/repos/learn-co-curriculum/react-presentation-components-lab/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/learn-co-curriculum/react-presentation-components-lab/downloads","issues_url":"https://api.github.com/repos/learn-co-curriculum/react-presentation-components-lab/issues{/number}","pulls_url":"https://api.github.com/repos/learn-co-curriculum/react-presentation-components-lab/pulls{/number}","milestones_url":"https://api.github.com/repos/learn-co-curriculum/react-presentation-components-lab/milestones{/number}","notifications_url":"https://api.github.com/repos/learn-co-curriculum/react-presentation-components-lab/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/learn-co-curriculum/react-presentation-components-lab/labels{/name}","releases_url":"https://api.github.com/repos/learn-co-curriculum/react-presentation-components-lab/releases{/id}","deployments_url":"https://api.github.com/repos/learn-co-curriculum/react-presentation-components-lab/deployments","created_at":"2016-08-03T19:11:51Z","updated_at":"2016-09-09T10:32:08Z","pushed_at":"2016-09-12T14:40:25Z","git_url":"git://github.com/learn-co-curriculum/react-presentation-components-lab.git","ssh_url":"git@github.com:learn-co-curriculum/react-presentation-components-lab.git","clone_url":"https://github.com/learn-co-curriculum/react-presentation-components-lab.git","svn_url":"https://github.com/learn-co-curriculum/react-presentation-components-lab","homepage":null,"size":406,"stargazers_count":0,"watchers_count":0,"language":"JavaScript","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"open_issues_count":2,"forks":0,"open_issues":2,"watchers":0,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/learn-co-curriculum/react-presentation-components-lab/pulls/1"},"html":{"href":"https://github.com/learn-co-curriculum/react-presentation-components-lab/pull/1"},"issue":{"href":"https://api.github.com/repos/learn-co-curriculum/react-presentation-components-lab/issues/1"},"comments":{"href":"https://api.github.com/repos/learn-co-curriculum/react-presentation-components-lab/issues/1/comments"},"review_comments":{"href":"https://api.github.com/repos/learn-co-curriculum/react-presentation-components-lab/pulls/1/comments"},"review_comment":{"href":"https://api.github.com/repos/learn-co-curriculum/react-presentation-components-lab/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/learn-co-curriculum/react-presentation-components-lab/pulls/1/commits"},"statuses":{"href":"https://api.github.com/repos/learn-co-curriculum/react-presentation-components-lab/statuses/62f0aeafb12a39dafcf032e8f4fc5dc2b368bfec"}}}}
{"actor":{"display_login":"ezmiller"}}