fix(code-reset): Listen for clickOnReset and remove code from storage (#16592)

This commit is contained in:
Stuart Taylor
2018-01-29 15:53:17 +00:00
committed by Quincy Larson
parent f13f0be26d
commit 21bd1b4207

View File

@ -58,8 +58,11 @@ function legacyToFile(code, files, key) {
return { [key]: setContent(code, files[key]) }; return { [key]: setContent(code, files[key]) };
} }
export function clearCodeEpic(actions, { getState }) { function clearCodeEpic(actions, { getState }) {
return actions::ofType(types.submitChallenge.complete) return actions::ofType(
types.submitChallenge.complete,
types.clickOnReset
)
.do(() => { .do(() => {
const { id } = challengeSelector(getState()); const { id } = challengeSelector(getState());
store.remove(id); store.remove(id);
@ -67,7 +70,7 @@ export function clearCodeEpic(actions, { getState }) {
.ignoreElements(); .ignoreElements();
} }
export function saveCodeEpic(actions, { getState }) { function saveCodeEpic(actions, { getState }) {
return actions::ofType(types.executeChallenge) return actions::ofType(types.executeChallenge)
// do not save challenge if code is locked // do not save challenge if code is locked
.filter(() => !codeLockedSelector(getState())) .filter(() => !codeLockedSelector(getState()))
@ -79,7 +82,7 @@ export function saveCodeEpic(actions, { getState }) {
.ignoreElements(); .ignoreElements();
} }
export function loadCodeEpic(actions, { getState }, { window, location }) { function loadCodeEpic(actions, { getState }, { window, location }) {
return Observable.merge( return Observable.merge(
actions::ofType(app.appMounted), actions::ofType(app.appMounted),
actions::ofType(types.onRouteChallenges) actions::ofType(types.onRouteChallenges)
@ -152,7 +155,7 @@ export function loadCodeEpic(actions, { getState }, { window, location }) {
}); });
} }
export function findPreviousSolutionEpic(actions, { getState }) { function findPreviousSolutionEpic(actions, { getState }) {
return Observable.combineLatest( return Observable.combineLatest(
actions::ofType(types.noStoredCodeFound), actions::ofType(types.noStoredCodeFound),
actions::ofType(app.fetchUser.complete) actions::ofType(app.fetchUser.complete)