From 9d8c80b6393ee23668a18caeca5002f340bc3c4f Mon Sep 17 00:00:00 2001 From: chrisgarrity <chrisg@media.mit.edu> Date: Thu, 8 Nov 2018 10:56:42 -0500 Subject: [PATCH] Start Gui with Tutorials Library open Adds `?tutorial=all` as a recognized option. Gui opens without the preview modal, and with the Tutorials Library open. Back button in the Tutorials Library takes you to the Editor (not back to referrer). --- src/lib/app-state-hoc.jsx | 11 ++++++++--- src/lib/tutorial-from-url.js | 1 + src/reducers/gui.js | 16 +++++++++++++++- 3 files changed, 24 insertions(+), 4 deletions(-) diff --git a/src/lib/app-state-hoc.jsx b/src/lib/app-state-hoc.jsx index 93d97180e..79d144681 100644 --- a/src/lib/app-state-hoc.jsx +++ b/src/lib/app-state-hoc.jsx @@ -52,7 +52,8 @@ const AppStateHOC = function (WrappedComponent, localesOnly) { guiMiddleware, initFullScreen, initPlayer, - initTutorialCard + initTutorialCard, + initTutorialLibrary } = guiRedux; const {ScratchPaintReducer} = require('scratch-paint'); @@ -69,8 +70,12 @@ const AppStateHOC = function (WrappedComponent, localesOnly) { if (tutorialId !== null) { // When loading a tutorial from the URL, // load w/o preview modal - // open requested tutorial card - initializedGui = initTutorialCard(initializedGui, tutorialId); + // open requested tutorial card or tutorials mocal for 'all' + if (tutorialId === 'all') { + initializedGui = initTutorialLibrary(initializedGui); + } else { + initializedGui = initTutorialCard(initializedGui, tutorialId); + } } } reducers = { diff --git a/src/lib/tutorial-from-url.js b/src/lib/tutorial-from-url.js index 4988d9962..b7d004ab8 100644 --- a/src/lib/tutorial-from-url.js +++ b/src/lib/tutorial-from-url.js @@ -40,6 +40,7 @@ const detectTutorialId = () => { queryParams.tutorial[0] : queryParams.tutorial; if (typeof tutorialID === 'undefined') return null; + if (tutorialID === 'all') return tutorialID; return getDeckIdFromUrlId(tutorialID); }; diff --git a/src/reducers/gui.js b/src/reducers/gui.js index 682913f62..b41f72452 100644 --- a/src/reducers/gui.js +++ b/src/reducers/gui.js @@ -96,6 +96,19 @@ const initTutorialCard = function (currentState, deckId) { ); }; +const initTutorialLibrary = function (currentState) { + return Object.assign( + {}, + currentState, + { + modals: { + previewInfo: false, + tipsLibrary: true + } + } + ); +}; + const guiReducer = combineReducers({ alerts: alertsReducer, assetDrag: assetDragReducer, @@ -128,5 +141,6 @@ export { guiMiddleware, initFullScreen, initPlayer, - initTutorialCard + initTutorialCard, + initTutorialLibrary }; -- GitLab