* chore(React): %s/react-pure-render/React.PureComponent/gc
* fix(Settings): Should redirect to signup when unauthen
* feat(Development): Use SES for mail if defined
* feat(Nav): Show anon navbar when logged in
* fix(server/datasources): Make sure mailhog works if no ses keys are found
LB will use both mail settings if using both local and dev
* fix(Nav): Use text instead of icons
* fix(Nav): Make donate page open in new tab
* fix(files): Decouple files from challenges
* feat(server/react): Remove action logger
use redux remote devtools instead!
* feat(Challenges): Disable js on edit, enable on execute
* feat(Challenge/Preview): Show message when js is disabled
* refactor(frameEpic): Reduce code by using lodash
* feat(frameEpic): Disable js in preview by state
* feat(frameEpic): Colocate epic in Challenges/redux
* refactor(ExecuteChallengeEpic): CoLocated with Challenges
* refactor(executeChallengesEpic): Separate tests from main logic
* feat(Challenge/Preview): Update main on edit
* feat(frameEpuc): Replace frame on edit/execute
This allows for sandbox to work properly
* fix(Challenges/Utils): Require utisl
* revert(frameEpic): Hoist function to mount code in frame
* fix(frameEpic): Ensure new frame is given classname
* feat(executeChallenge): Update main on code unlocked
* fix(frameEpic): Filter out empty test message
* fix(Challenge/Preview): Remove unnessary quote in classname
* feat(codeStorageEpic): Separate localstorage from solutions loading
* fix(fetchUser): Merge user actions into one
prefer many effects from one action over one action to one effect
* fix(themes): Centralize theme utils and defs
* fix(entities.user): Fix user reducer namespacing
* feat(frame): Refactor frameEpic to util
* feat(Challenges.redux): Should not attempt to update main from storage
* fix(loadPreviousChallengeEpic): Refactor for RFR
* fix(Challenges.Modern): Show preview plane
The default text of the legend is confusing given the low range of
values used. Cal-heatmap expects higher legend values, such as [10, 20,
30, 40], rather than [1, 2, 3]. This change will hopefully make the
mouseover text for the legend a little less confusing.
BREAKING CHANGE: None
Closes#16124
* feat(seed): Add modern challenge
* chore(react): Use prop-types package
* feat: Initial refactor to redux-first-router
BREAKING CHANGE: Everything is different!
* feat: First rendering
* feat(routes): Challenges view render but failing
* fix(Challenges): Remove contain HOC
* fix(RFR): Add params selector
* fix(RFR): :en should be :lang
* fix: Update berks utils for redux
* fix(Map): Challenge link to arg
* fix(Map): Add trailing slash to map page
* fix(RFR): Use FCC Link
Use fcc Link to get around issue of lang being undefined
* fix(Router): Link to is required
* fix(app): Rely on RFR state for app lang
* chore(RFR): Remove unused RFR Link
* fix(RFR): Hydrate initial challenge using RFR and RO
* fix: Casing issue
* fix(RFR): Undefined links
* fix(RFR): Use onRoute<name> convention for route types
* feat(server/react): Add helpful redux logging/throwing
* fix(server/react): Strip out nonjson from state
This prevents thunks in routesMap from breaking serialization
* fix(RFR/Link): Should accept any renderable
* fix(RFR): Get redirects working
* fix(RFR): Redirects and not found's
* fix(Map): Move challenge onClick handler
* fix(Map): Allow Router.link to handle clicks after onClick
* fix(routes): Remove react-router-redux
* feat(Router): Add lang to all route actions by default
* fix(entities): Only fetch challenge if not already loaded
* fix(Files): Move files to own feature
* chore(Challenges): Remove vestigial hints logic
* fix(RFR): Update challenges on route challenges
* fix(code-storage): Should use events instead of commands
* fix(Map): ClickOnMap should not hold on to event
* chore(lint): Use eslint-config-freecodecamp
Closes#15938
* feat(Panes): Update panes on route instead of render
* fix(Panes): Store panesmap and update on fetchchallenges
* fix(Panes): Normalize panesmaps
* fix(Panes): Remove filter from createpanemap
* fix(Panes): Middleware on location meta object
* feat(Panes): Filter preview on nonhtml challenges
* build(babel): Add lodash babel plugin
* chore(lint): Lint js files
* fix(server/user-stats): Remove use of lodash chain
this interferes with babel-plugin-lodash
* feat(dev): Add remote redux devtools for ssr
* fix(Panes): Dispatch mount action
this is needed to trigger window/divider epics
* fix(Panes): Getpane to use new panesmap format
* fix(Panes): Always update panes after state
this lets the panes logic be affected by changes in state
With the changes to passwordless account creation, contributors are
unable to create an account locally. MailHog spins up a local SMPT
server that can catch all outgoing emails, allowing contributors to
successfully create accounts and see any other emails generated locally.
Closes#15838