{"push_id":1917753736,"size":27,"distinct_size":27,"ref":"refs/heads/staging","head":"7fbce94845df0d59843b8fae30d705de373451a8","before":"8dd2c899ff40875afca7563b16a1b59e49bd25a2","commits":[{"sha":"5501542e10f53927e631a0be5836e7654bf3a56f","author":{"name":"Peter Weinberg","email":"2ee23e39d13d5c3765d3ef1894d772722e581732@gmail.com"},"message":"feat(views): create global challenge-description component","distinct":true,"url":"https://api.github.com/repos/shubhshrma/freeCodeCamp/commits/5501542e10f53927e631a0be5836e7654bf3a56f"},{"sha":"51d7514992eed63b8dc47b7b3450ea74597359be","author":{"name":"Prateek Goel","email":"6e2d15c5631473c722341bb1df3b36ee8ad50645@users.noreply.github.com"},"message":"Move Fahrenheit Variable Below Comment Line\n\nChallenge URL: https://www.freecodecamp.org/challenges/convert-celsius-to-fahrenheit","distinct":true,"url":"https://api.github.com/repos/shubhshrma/freeCodeCamp/commits/51d7514992eed63b8dc47b7b3450ea74597359be"},{"sha":"bc46368750430f4f90efee3b64429716d336cda0","author":{"name":"dhcodes","email":"4886bbcda89518896a45459eb36d1e908e3464ba@gmail.com"},"message":"fix(styles): Change modal title color\n\nCloses #15588","distinct":true,"url":"https://api.github.com/repos/shubhshrma/freeCodeCamp/commits/bc46368750430f4f90efee3b64429716d336cda0"},{"sha":"791b16860d3e77b7907d545b70208b6a1314dab8","author":{"name":"Shubham Sharma","email":"e112c87be06acb5eefeead7f4f0a5f44a03b21a4@gmail.com"},"message":"fix(challenges): Change hyperdev link to glitch (#15694)\n\nCloses #15691","distinct":true,"url":"https://api.github.com/repos/shubhshrma/freeCodeCamp/commits/791b16860d3e77b7907d545b70208b6a1314dab8"},{"sha":"56c81c86f18ccbe4c635fca129cd6104590dcb51","author":{"name":"Prateek","email":"28618806b7d39a1906720f89290135d4df25dbf9@gmail.com"},"message":"Changes post review","distinct":true,"url":"https://api.github.com/repos/shubhshrma/freeCodeCamp/commits/56c81c86f18ccbe4c635fca129cd6104590dcb51"},{"sha":"ca32658c706a09e19e73372ad8c0459b0db9cbc9","author":{"name":"Prateek","email":"28618806b7d39a1906720f89290135d4df25dbf9@gmail.com"},"message":"Changes post review again","distinct":true,"url":"https://api.github.com/repos/shubhshrma/freeCodeCamp/commits/ca32658c706a09e19e73372ad8c0459b0db9cbc9"},{"sha":"7a75e2547596f9d1e7b5c4041b1420db23f99b34","author":{"name":"Berkeley Martinez","email":"b321a7fc11efee33461f9eb3a88749a5daa5bd6a@users.noreply.github.com"},"message":"Merge pull request #15671 from dhcodes/fix/modal-title-color\n\nfix(styles): Change modal title color","distinct":true,"url":"https://api.github.com/repos/shubhshrma/freeCodeCamp/commits/7a75e2547596f9d1e7b5c4041b1420db23f99b34"},{"sha":"42bfa2e64ddddbf81a700a7a8ed2d3e7bc8b57db","author":{"name":"Berkeley Martinez","email":"b321a7fc11efee33461f9eb3a88749a5daa5bd6a@users.noreply.github.com"},"message":"feat(app): new layout (#14707)\n\n* feat(app): Restructure app to be more flexible and redux idiomatic\r\n\r\nBREAKING CHANGE: Lots of breaking changes\r\n\r\n* refactor(challenges): Redux to started file structure\r\n\r\n* fix(app): lint issues due to refactor\r\n\r\n* fix(settings): Refactor settings to use folder structure\r\n\r\n* refactor(challenges): Move step redux stuff into step folder\r\n\r\n* fix(challenges): Remove fetchchallenges actions\r\n\r\n* refactor(challenges): Move project redux logic into project view subdirectory\r\n\r\n* refactor(app): %s/sagas/epics/g\r\n\r\n* refactor(redux): Use new redux-epic with combineEpic and ofType\r\n\r\n* refactor(app): Move challenge selector to app level\r\n\r\n* fix(app): Move loading challenge info into challenge route\r\n\r\nThis moves a lot of the logic needed to load challenge info into the challenge app. This decouples\r\nthe main app from the challenge route\r\n\r\n* refactor(map): Map is now decoupled from challenges\r\n\r\n* refactor(challenges): Use selectors everywhere instead of guessing state shape\r\n\r\n* refactor(client): refactor client epics to use selectors\r\n\r\n* refactor(app): Refactor userSelector to return user object instead of object.user\r\n\r\n* refactor(entities): Move entities logic into it's own file\r\n\r\n* fix(redux): combineTypes should be combineActions\r\n\r\n* fix(app): reducer namespacing and import\r\n\r\n* fix(Map): Fix undefined type and update redux-action\r\n\r\n* fix(redux): Refactor fetchUser to be more declarative\r\n\r\nUse rxjs methods instead of imperative if/else. Also prevent non-actions from being emitted\r\n\r\n* fix(redux): toString multi phase action types\r\n\r\n* fix(redux): typecast multiphase type, fix typo in reducer\r\n\r\ntoString multiphase types in fetch challenge epic. Add epic to epics lists. Fix type in fetch\r\nchallenge complete handler\r\n\r\n* fix(redux): updateCurrentChallengelogic should be centerlized\r\n\r\nMove route changes to one location.\r\n\r\n* fix(Nav): Prevent event object from hanging around\r\n\r\ncloseDropDown/openDropDown where handing on to the event object. This was causing issues with react\r\nsince event objects are recycled in React.\r\n\r\n* fix(Map.Challenge): decouple map selector\r\n\r\n* fix(Map): Decouple panel selectors from props\r\n\r\nPanel Selectors no longer need to know the shape of a components props. Refactored component\r\nselectors to decouple them entities state shape\r\n\r\n* fix(Map.redux): Add select challenge epic and connect map epics\r\n\r\n* fix(redux.analytics): Fix meta creator and nav/map events\r\n\r\n* fix(redux): Update current challenge ajax\r\n\r\n* fix(challenges): ssr fetch challenge should update challenge ui\r\n\r\nWas using an epic to update challenge ui on fetch complete, but this was not working on ssr due to\r\nthe way ssr disables epics to wait for completion. This commit fixes this by causing the complete to\r\ndirectly update state in the challenge ui\r\n\r\n* fix(challenges): wrong import of types, refactor epic name\r\n\r\n* fix(redux): Prevent fetch challenge epic from emitting null to dispatch\r\n\r\n* fix(redux): prevent executechallenge from emitting null\r\n\r\n* fix(challenges.redux): testsSelector returns just tests\r\n\r\n* fix(challenges.redux): Prevent completion challenge from emitting null\r\n\r\n* refactor(Challenges.Step): Refactor step challenge to release event object\r\n\r\n* fix(redux): wrap reducers in factories\r\nreducers exported from features need to be factories\r\nthis helps avoid cyclic requires messing up reducer creation\r\nWe end up with exports from files being undefined as node tries\r\nto resolve cyclic dependencies.\r\nThis prevents that by wrapping the `handleActions` call so that the ref\r\nto types imported from parent features are closures and can be resolved\r\nby node before we need them.\r\n\r\n* fix(Map): createUi not working correctly\r\n\r\nmap utils should receive just map ui state, createMapUi needs to add title to challenge\r\n\r\n* feat(Challenges): Adds Panes and panes backend challenge\r\n\r\n* fix: Create child container to wrap children\r\n\r\nCreate a ChildContainer comp' to wrap all children that represent the view for the current route.\r\nThis let's the child route define if they want a full width view or if they want the standard\r\nmax-width view.\r\n\r\n* feat(Panes): panes now render dividers\r\n\r\n* feat(Panes): Get divider to move currectly\r\n\r\n* fix(Nav): Add top margin to contained childs\r\n\r\nMove margin-bottom from nav to child container as margin top. This let's the jsbin style views fit\r\nsnug with navbar\r\n\r\n* fix(Panes): Should be contained within their borders\r\n\r\n* feat(Panes): Update navbar height of pane on app mount\r\n\r\n* feat(Panes): Toggle map on map nav btn click\r\n\r\n* fix(gulpfile): Ensure nodemon exits on restart\r\n\r\nOn process exit, wait for nodemon to shutdown before process.exit\r\n\r\n* feat(Panes): Make Panes redux first\r\n\r\n* fix(Panes): Fix divider positioning\r\n\r\n* fix(Panes): Update divider moved handler\r\n\r\ndividerMoved action now uses new panesByName structure\r\n\r\n* feat(Panes): Pane nav button will hide panes\r\n\r\n* chore(package-lock): Update package lock\r\n\r\n* feat(Panes.redux): Recaculate dividers on pane toggle\r\n\r\n* fix(Challenges): Update challenge on dashedName change\r\n\r\nThis fixes backwards navigation not updating the redux state current\r\nchallenge\r\n\r\n* feat(Panes.redux): Clear panes on unmount\r\n\r\nClearing panes on unmount will clear bin buttons in nav\r\n\r\n* refactor(Map): Colocate styles\r\n\r\n* feat(Map): New map layout\r\n\r\n* fix(Map): No longer has it's own page\r\n\r\n* fix: FetchChallenges on appMounted\r\n\r\n* feat: Normalize fetchChallenge(s) results\r\n\r\nThis allows superblocks to be sent with both fetchChallenge and\r\nfetchChallenges so the map is always populated on first load\r\n\r\n* feat(Map): Show blocks on first load\r\n\r\n* fix(less): Remove old css\r\n\r\n* feat(Nav): Reduce nav height\r\n\r\n* fix(Nav): Render nav after content\r\n\r\nRender nav after content and use css to reverse again on screen. We do\r\nthis so the panes can render first and update redux panes state which\r\nwill then update the nav ui state before nav has a chance to render\r\n\r\n* fix(Panes): Add container\r\n\r\nThis adds a Panes Container that will allow it to udpate redux state so\r\nPanes Component will have redux state ready to actually render panes\r\n\r\n* feat(Challenges.Classic): Add panes\r\n\r\n* fix(Challenge.Classic): Editor onchange should not need to know about file\r\n\r\n* fix(Panes): Index on panes hide should account for hidden pane\r\n\r\n* fix(Challanges.Classic): Fix panes types\r\n\r\n* fix(Challenges): Add completion modal to all challenges\r\n\r\nChange classic modal to completion modal\r\n\r\n* fix(Panes): Dividers live on top of planes\r\n\r\n* fix(Challenges): Remove codemirror theme\r\n\r\nRemove codemirror theme and remove borders from preview frame\r\n\r\n* fix(Challenges.Classic): Remove old component\r\n\r\n* feat(Challenges.Step): Add panes to step challenge\r\n\r\n* feat(Challenges.Project): Add panes to projects\r\n\r\n* fix(Challenges.Projects): Remove row\r\n\r\n* fix(Modals): Move modal text color to challenge less\r\n\r\nThis text color is dependent on the actual header color\r\n\r\n* fix(Map): Use Superblock title for ui\r\n\r\n* fix(Map): Reduce panel header height\r\n\r\n* fix(app): Capitalize Toasts folder\r\n\r\nFeature folders should be campitalized\r\n\r\n* chore(Map): Remove unused epic file\r\n\r\n* fix(Step): Fix tests\r\n\r\n* test(Map): Update createMapUi tests input","distinct":true,"url":"https://api.github.com/repos/shubhshrma/freeCodeCamp/commits/42bfa2e64ddddbf81a700a7a8ed2d3e7bc8b57db"},{"sha":"a4946902a628ca5a3f986e8661fd85e607161514","author":{"name":"MANISH-GIRI","email":"1bcace640c741f4795db538919f837e557ae3be1@gmail.com"},"message":"Allow shorthand Hex values in challenge","distinct":true,"url":"https://api.github.com/repos/shubhshrma/freeCodeCamp/commits/a4946902a628ca5a3f986e8661fd85e607161514"},{"sha":"b5f4924e6b3dbadfafa352e0df2ffe34e02ff933","author":{"name":"Dylan","email":"ad2699eb1a1bec76f6d30f01938b735e879157ff@users.noreply.github.com"},"message":"Merge pull request #15679 from Manish-Giri/fix/allow-shorthand-hex-values\n\nAllow shorthand Hex values in challenge","distinct":true,"url":"https://api.github.com/repos/shubhshrma/freeCodeCamp/commits/b5f4924e6b3dbadfafa352e0df2ffe34e02ff933"},{"sha":"f92294bbda4e0fe0949c2dd2d4d89411db41d802","author":{"name":"Dylan","email":"ad2699eb1a1bec76f6d30f01938b735e879157ff@users.noreply.github.com"},"message":"Merge pull request #15670 from prateekgoel/fix/move-fahrenheit-variable\n\nMove Fahrenheit Variable Below Comment Line","distinct":true,"url":"https://api.github.com/repos/shubhshrma/freeCodeCamp/commits/f92294bbda4e0fe0949c2dd2d4d89411db41d802"},{"sha":"e20916f9b0fe6e64a21aef9723d35d2bad97e766","author":{"name":"Usman Hussain","email":"15c73d7225091c5010823b6287249d188c66b18d@macs-MacBook-Pro-2.local"},"message":"fix(seed): Function name findLongestWord changed\n\nThe function name findLongestWord is a little misleading as the\nchallenge asks to return the length of the word not the word itself.\nName findLongestWordLength is perfect.\n\nBREAKING CHANGE: Function name changed","distinct":true,"url":"https://api.github.com/repos/shubhshrma/freeCodeCamp/commits/e20916f9b0fe6e64a21aef9723d35d2bad97e766"},{"sha":"c547c26bba2a0258cf59f7fc1dcd642dcb1a9101","author":{"name":"Berkeley Martinez","email":"b321a7fc11efee33461f9eb3a88749a5daa5bd6a@users.noreply.github.com"},"message":"Fix: map should redirect to current challenge (#15723)\n\n* fix(routes): /map redirects to current challenge\r\n\r\n* fix(map): Normalize server map building\r\n\r\nLocalize all server code dealing with the map\r\n\r\n* refactor(server): Remove unused services\r\n\r\n* feat(Nav): Show Map button when no panes\r\n\r\nThis gives user the ability to quickly return to their challenge using a\r\nknown feature\r\n\r\n* fix(server.map): Add caching to nameIdMap\r\n\r\nAdd caching to nameIdMap on the server\r\n\r\n* fix(services.map): Fix map service\r\n\r\nMove map building utils to map util. Fix bad import. Normalize challenge\r\nlookup","distinct":true,"url":"https://api.github.com/repos/shubhshrma/freeCodeCamp/commits/c547c26bba2a0258cf59f7fc1dcd642dcb1a9101"},{"sha":"308304d36c468205c46cdcd18f29ac459ff35304","author":{"name":"Felix Yan","email":"f84576f24f55ace05889f9b35e8038fdd7abd69a@archlinux.org"},"message":"Fix typos in seed/challenges/06-information-security-and-quality-assurance/information-security-with-helmetjs.json","distinct":true,"url":"https://api.github.com/repos/shubhshrma/freeCodeCamp/commits/308304d36c468205c46cdcd18f29ac459ff35304"},{"sha":"1018ff5a691564c93bc4266a97dfad8e118f01cf","author":{"name":"Dylan","email":"ad2699eb1a1bec76f6d30f01938b735e879157ff@users.noreply.github.com"},"message":"Merge pull request #15735 from felixonmars/fix/typo\n\nFix typos in seed/challenges/06-information-security-and-quality-assurance/information-security-with-helmetjs.json","distinct":true,"url":"https://api.github.com/repos/shubhshrma/freeCodeCamp/commits/1018ff5a691564c93bc4266a97dfad8e118f01cf"},{"sha":"9adbd5fb5699c33f43121ed40e0aefe7ccc2c60f","author":{"name":"Ana","email":"75b7da03c17617d213064c74c0aa097441bfbc41@gmail.com"},"message":"fix: hours-display","distinct":true,"url":"https://api.github.com/repos/shubhshrma/freeCodeCamp/commits/9adbd5fb5699c33f43121ed40e0aefe7ccc2c60f"},{"sha":"def425a66f4a428c4e6e65c07cb76df03b84d7b3","author":{"name":"Milo Hartsoe","email":"867f673753652d13c65bb449491570c6eb3b6f4b@gmail.com"},"message":"fix(seed, challenges, 02-javascript-algorithms-and-data-structures, basic-javascript.json, Golf Code): Adds an array of the names to the Golf Code challe (#15678)\n\nThis adds an array of names for the Golf Code challenge and adds a\r\nsentence about the array to the description of the challenge.\r\n\r\nCloses #15618","distinct":true,"url":"https://api.github.com/repos/shubhshrma/freeCodeCamp/commits/def425a66f4a428c4e6e65c07cb76df03b84d7b3"},{"sha":"f9e925b03e2ae01dd12975fb08832bda920398b6","author":{"name":"Dylan","email":"ad2699eb1a1bec76f6d30f01938b735e879157ff@users.noreply.github.com"},"message":"Merge pull request #15734 from anawebdev/fix/hours-display\n\nCorrect misalignment between challenge names and hour estimates","distinct":true,"url":"https://api.github.com/repos/shubhshrma/freeCodeCamp/commits/f9e925b03e2ae01dd12975fb08832bda920398b6"},{"sha":"c5be44be1b4c2b8337b563a6981d482a035faada","author":{"name":"dhcodes","email":"4886bbcda89518896a45459eb36d1e908e3464ba@gmail.com"},"message":"fix(challenges): Change switch code format for consistency\n\nCloses #14947","distinct":true,"url":"https://api.github.com/repos/shubhshrma/freeCodeCamp/commits/c5be44be1b4c2b8337b563a6981d482a035faada"},{"sha":"8c28b3fadf91f5ca7f8d76dcb14026a5187f2763","author":{"name":"Dylan","email":"ad2699eb1a1bec76f6d30f01938b735e879157ff@users.noreply.github.com"},"message":"Merge pull request #15744 from usmandap/fix/longest-word-in-string\n\nfix(seed): Function name findLongestWord changed","distinct":true,"url":"https://api.github.com/repos/shubhshrma/freeCodeCamp/commits/8c28b3fadf91f5ca7f8d76dcb14026a5187f2763"}]}
{"actor":{"display_login":"shubhshrma"}}