From cc0d6426fcf9fdd3c41966b1aa524ac7ee6034d7 Mon Sep 17 00:00:00 2001 From: shmck Date: Sat, 18 Apr 2020 21:08:17 -0700 Subject: [PATCH 1/5] check tutorial.id locally Signed-off-by: shmck --- src/channel/index.ts | 30 ++++++++++++++---------------- 1 file changed, 14 insertions(+), 16 deletions(-) diff --git a/src/channel/index.ts b/src/channel/index.ts index 5d2a7dec..b9734d64 100644 --- a/src/channel/index.ts +++ b/src/channel/index.ts @@ -75,24 +75,22 @@ class Channel implements Channel { // continue from tutorial from local storage const tutorial: TT.Tutorial | null = this.context.tutorial.get() - // new tutorial - this.send({ type: 'START_NEW_TUTORIAL', payload: { env } }) - return - - // disable continue until fixed - - // // set tutorial - // const { position, progress } = await this.context.setTutorial(this.workspaceState, tutorial) + // no stored tutorial, must start new tutorial + if (!tutorial || !tutorial.id) { + this.send({ type: 'START_NEW_TUTORIAL', payload: { env } }) + return + } - // if (progress.complete) { - // // tutorial is already complete - // this.send({ type: 'TUTORIAL_ALREADY_COMPLETE', payload: { env } }) - // return - // } - // // communicate to client the tutorial & stepProgress state - // this.send({ type: 'LOAD_STORED_TUTORIAL', payload: { env, tutorial, progress, position } }) + // load continued tutorial position & progress + const { position, progress } = await this.context.setTutorial(this.workspaceState, tutorial) - // return + if (progress.complete) { + // tutorial is already complete + this.send({ type: 'TUTORIAL_ALREADY_COMPLETE', payload: { env } }) + return + } + // communicate to client the tutorial & stepProgress state + this.send({ type: 'LOAD_STORED_TUTORIAL', payload: { env, tutorial, progress, position } }) } catch (e) { const error = { type: 'UnknownError', From a87e5c7f6107bea0a1710c4ae9652b644a5c1945 Mon Sep 17 00:00:00 2001 From: shmck Date: Sat, 18 Apr 2020 21:38:52 -0700 Subject: [PATCH 2/5] cleanup machine actions Signed-off-by: shmck --- web-app/src/components/Router/index.tsx | 12 ++++++++---- web-app/src/containers/Tutorial/index.tsx | 4 ++-- web-app/src/services/state/actions/context.ts | 13 +++++++------ web-app/src/services/state/machine.ts | 10 +++++----- 4 files changed, 22 insertions(+), 17 deletions(-) diff --git a/web-app/src/components/Router/index.tsx b/web-app/src/components/Router/index.tsx index 56be6dad..8dda5bce 100644 --- a/web-app/src/components/Router/index.tsx +++ b/web-app/src/components/Router/index.tsx @@ -17,7 +17,7 @@ declare let acquireVsCodeApi: any const editor = acquireVsCodeApi() const editorSend = (action: T.Action) => { - logger(`CLIENT TO EXT: "${action.type}"`) + logger(`TO EXT: "${action.type}"`) return editor.postMessage(action) } @@ -25,6 +25,11 @@ const editorSend = (action: T.Action) => { const useRouter = (): Output => { const [state, send] = useMachine(createMachine({ editorSend })) + const sendWithLog = (action: T.Action): void => { + logger(`SEND: ${action.type}`, action) + send(action) + } + logger(`STATE: ${JSON.stringify(state.value)}`) // event bus listener @@ -38,8 +43,7 @@ const useRouter = (): Output => { if (action.source) { return } - logger(`CLIENT RECEIVED: "${action.type}"`) - send(action) + sendWithLog(action) } window.addEventListener(listener, handler) return () => { @@ -74,7 +78,7 @@ const useRouter = (): Output => { return { context: state.context, - send, + send: sendWithLog, Router, Route, } diff --git a/web-app/src/containers/Tutorial/index.tsx b/web-app/src/containers/Tutorial/index.tsx index c7e21201..7d696958 100644 --- a/web-app/src/containers/Tutorial/index.tsx +++ b/web-app/src/containers/Tutorial/index.tsx @@ -23,9 +23,9 @@ const TutorialPage = (props: PageProps) => { const onContinue = (): void => { props.send({ - type: 'LEVEL_NEXT', + type: 'NEXT_LEVEL', payload: { - LevelId: position.levelId, + levelId: position.levelId, }, }) } diff --git a/web-app/src/services/state/actions/context.ts b/web-app/src/services/state/actions/context.ts index e179effe..b082e531 100644 --- a/web-app/src/services/state/actions/context.ts +++ b/web-app/src/services/state/actions/context.ts @@ -3,6 +3,7 @@ import * as TT from 'typings/tutorial' import { assign, send, ActionFunctionMap } from 'xstate' import * as selectors from '../../selectors' import onError from '../../../services/sentry/onError' +import logger from 'services/logger' const contextActions: ActionFunctionMap = { // @ts-ignore @@ -33,7 +34,7 @@ const contextActions: ActionFunctionMap = { }, }), // @ts-ignore - startNewTutorial: assign({ + startTutorial: assign({ position: (context: T.MachineContext, event: T.MachineEvent): any => { const position: T.Position = selectors.initialPosition(context) return position @@ -119,8 +120,7 @@ const contextActions: ActionFunctionMap = { // @ts-ignore updatePosition: assign({ position: (context: T.MachineContext, event: T.MachineEvent): any => { - const { position } = event.payload - return position + return event.payload }, }), loadNext: send( @@ -140,7 +140,7 @@ const contextActions: ActionFunctionMap = { // NEXT STEP if (hasNextStep) { const nextPosition = { ...position, stepId: steps[stepIndex + 1].id } - return { type: 'NEXT_STEP', payload: { position: nextPosition } } + return { type: 'NEXT_STEP', payload: nextPosition } } // has next level? @@ -164,7 +164,7 @@ const contextActions: ActionFunctionMap = { levelId: nextLevel.id, stepId: nextLevel.steps[0].id, } - return { type: 'NEXT_LEVEL', payload: { position: nextPosition } } + return { type: 'NEXT_LEVEL', payload: nextPosition } } // COMPLETED @@ -230,8 +230,9 @@ const contextActions: ActionFunctionMap = { error: (): any => null, }), // @ts-ignore - checkEmptySteps: send((context: T.MachineContext) => { + checkLevelCompleted: send((context: T.MachineContext) => { // no step id indicates no steps to complete + logger(context.position) return { type: context.position.stepId === null ? 'START_COMPLETED_LEVEL' : 'START_LEVEL', } diff --git a/web-app/src/services/state/machine.ts b/web-app/src/services/state/machine.ts index 4441a968..5252752b 100644 --- a/web-app/src/services/state/machine.ts +++ b/web-app/src/services/state/machine.ts @@ -97,7 +97,7 @@ export const createMachine = (options: any) => { on: { NEW_TUTORIAL: 'ValidateSetup', CONTINUE_TUTORIAL: { - target: '#tutorial-level', + target: 'StartTutorial', actions: ['continueConfig'], }, CONTINUE_FAILED: { @@ -127,7 +127,7 @@ export const createMachine = (options: any) => { }, }, StartTutorial: { - onEntry: ['startNewTutorial'], + onEntry: ['startTutorial'], after: { 0: '#tutorial', }, @@ -157,7 +157,7 @@ export const createMachine = (options: any) => { initial: 'Load', states: { Load: { - onEntry: ['loadLevel', 'loadStep', 'checkEmptySteps'], + onEntry: ['loadLevel', 'loadStep', 'checkLevelCompleted'], on: { START_LEVEL: 'Normal', START_COMPLETED_LEVEL: 'LevelComplete', @@ -214,9 +214,9 @@ export const createMachine = (options: any) => { onEntry: ['updateLevelProgress'], onExit: ['syncLevelProgress'], on: { - LEVEL_NEXT: { + NEXT_LEVEL: { target: '#tutorial-load-next', - actions: ['testClear'], + actions: ['testClear', 'updatePosition'], }, }, }, From b44914a5d5ad1ef9b67faec323d53d6a1a47ca50 Mon Sep 17 00:00:00 2001 From: shmck Date: Sun, 26 Apr 2020 16:30:51 -0700 Subject: [PATCH 3/5] refactor traverse content component Signed-off-by: shmck --- .../src/containers/Tutorial/ContentMenu.tsx | 52 +++++++++++++++++++ web-app/src/containers/Tutorial/index.tsx | 51 ++++-------------- 2 files changed, 62 insertions(+), 41 deletions(-) create mode 100644 web-app/src/containers/Tutorial/ContentMenu.tsx diff --git a/web-app/src/containers/Tutorial/ContentMenu.tsx b/web-app/src/containers/Tutorial/ContentMenu.tsx new file mode 100644 index 00000000..69e3329e --- /dev/null +++ b/web-app/src/containers/Tutorial/ContentMenu.tsx @@ -0,0 +1,52 @@ +import * as React from 'react' +import * as T from 'typings' +import * as TT from 'typings/tutorial' +import { Menu } from '@alifd/next' +import Icon from '../../components/Icon' + +interface Props { + tutorial: TT.Tutorial + position: T.Position + progress: T.Progress + setTitle: (title: string) => void + setContent: (content: string) => void +} + +const ContentMenu = ({ tutorial, position, progress, setTitle, setContent }: Props) => { + const setMenuContent = (levelId: string) => { + const selectedLevel: TT.Level | undefined = tutorial.levels.find((l: TT.Level) => l.id === levelId) + if (selectedLevel) { + setTitle(selectedLevel.title) + setContent(selectedLevel.content) + } + } + return ( + + {tutorial.levels.map((level: TT.Level) => { + const isCurrent = level.id === position.levelId + const isComplete = progress.levels[level.id] + let icon + let disabled = false + + if (isComplete) { + // completed icon + icon = + } else if (isCurrent) { + // current icon` + icon = + } else { + // upcoming + disabled = true + icon = + } + return ( + setMenuContent(level.id)}> + {icon}   {level.title} + + ) + })} + + ) +} + +export default ContentMenu diff --git a/web-app/src/containers/Tutorial/index.tsx b/web-app/src/containers/Tutorial/index.tsx index 7d696958..4c04f660 100644 --- a/web-app/src/containers/Tutorial/index.tsx +++ b/web-app/src/containers/Tutorial/index.tsx @@ -1,11 +1,9 @@ import * as React from 'react' import * as T from 'typings' import * as TT from 'typings/tutorial' -import { Menu } from '@alifd/next' import * as selectors from '../../services/selectors' -import Icon from '../../components/Icon' +import ContentMenu from './ContentMenu' import Level from './components/Level' -import logger from '../../services/logger' interface PageProps { context: T.MachineContext @@ -45,48 +43,19 @@ const TutorialPage = (props: PageProps) => { return { ...step, status } }) - const setMenuContent = (levelId: string) => { - const selectedLevel: TT.Level | undefined = tutorial.levels.find((l: TT.Level) => l.id === levelId) - if (selectedLevel) { - setTitle(selectedLevel.title) - setContent(selectedLevel.content) - } - } - - const menu = ( - - {tutorial.levels.map((level: TT.Level) => { - const isCurrent = level.id === position.levelId - logger('progress', progress) - const isComplete = progress.levels[level.id] - let icon - let disabled = false - - if (isComplete) { - // completed icon - icon = - } else if (isCurrent) { - // current icon` - icon = - } else { - // upcoming - disabled = true - icon = - } - return ( - setMenuContent(level.id)}> - {icon}   {level.title} - - ) - })} - - ) - return ( + } index={tutorial.levels.findIndex((l: TT.Level) => l.id === position.levelId)} steps={steps} status={progress.levels[position.levelId] ? 'COMPLETE' : 'ACTIVE'} From a369df6e76c68cdd08790cfbc22101c19fcc5125 Mon Sep 17 00:00:00 2001 From: shmck Date: Sun, 26 Apr 2020 17:17:11 -0700 Subject: [PATCH 4/5] fix continue Signed-off-by: shmck --- web-app/src/containers/Start/index.tsx | 6 ++++- web-app/src/services/state/actions/context.ts | 27 ++++++++----------- web-app/src/services/state/machine.ts | 6 ++--- 3 files changed, 19 insertions(+), 20 deletions(-) diff --git a/web-app/src/containers/Start/index.tsx b/web-app/src/containers/Start/index.tsx index 257f25c4..922bfed7 100644 --- a/web-app/src/containers/Start/index.tsx +++ b/web-app/src/containers/Start/index.tsx @@ -86,7 +86,11 @@ interface ContainerProps { const StartPageContainer = ({ context, send }: ContainerProps) => { const tutorial = context.tutorial || undefined return ( - send('CONTINUE_TUTORIAL')} onNew={() => send('NEW_TUTORIAL')} tutorial={tutorial} /> + send({ type: 'CONTINUE_TUTORIAL' })} + onNew={() => send({ type: 'NEW_TUTORIAL' })} + tutorial={tutorial} + /> ) } diff --git a/web-app/src/services/state/actions/context.ts b/web-app/src/services/state/actions/context.ts index b082e531..6c6a25f9 100644 --- a/web-app/src/services/state/actions/context.ts +++ b/web-app/src/services/state/actions/context.ts @@ -3,7 +3,7 @@ import * as TT from 'typings/tutorial' import { assign, send, ActionFunctionMap } from 'xstate' import * as selectors from '../../selectors' import onError from '../../../services/sentry/onError' -import logger from 'services/logger' +import logger from '../../../services/logger' const contextActions: ActionFunctionMap = { // @ts-ignore @@ -16,25 +16,20 @@ const contextActions: ActionFunctionMap = { }, }), // @ts-ignore - storeContinuedTutorial: assign({ - env: (context: T.MachineContext, event: T.MachineEvent) => { - return { + loadContinuedTutorial: assign((context: T.MachineContext, event: T.MachineEvent): any => { + return { + env: { ...context.env, ...event.payload.env, - } - }, - tutorial: (context: T.MachineContext, event: T.MachineEvent) => { - return event.payload.tutorial - }, - progress: (context: T.MachineContext, event: T.MachineEvent) => { - return event.payload.progress - }, - position: (context: T.MachineContext, event: T.MachineEvent) => { - return event.payload.position - }, + }, + tutorial: event.payload.tutorial, + progress: event.payload.progress, + position: event.payload.position, + } }), + // @ts-ignore - startTutorial: assign({ + initProgressPosition: assign({ position: (context: T.MachineContext, event: T.MachineEvent): any => { const position: T.Position = selectors.initialPosition(context) return position diff --git a/web-app/src/services/state/machine.ts b/web-app/src/services/state/machine.ts index 5252752b..8b91d813 100644 --- a/web-app/src/services/state/machine.ts +++ b/web-app/src/services/state/machine.ts @@ -64,7 +64,7 @@ export const createMachine = (options: any) => { }, LOAD_STORED_TUTORIAL: { target: 'Start', - actions: ['storeContinuedTutorial'], + actions: ['loadContinuedTutorial'], }, START_NEW_TUTORIAL: { target: 'Start', @@ -97,7 +97,7 @@ export const createMachine = (options: any) => { on: { NEW_TUTORIAL: 'ValidateSetup', CONTINUE_TUTORIAL: { - target: 'StartTutorial', + target: '#tutorial', actions: ['continueConfig'], }, CONTINUE_FAILED: { @@ -127,7 +127,7 @@ export const createMachine = (options: any) => { }, }, StartTutorial: { - onEntry: ['startTutorial'], + onEntry: ['initProgressPosition'], after: { 0: '#tutorial', }, From edb6b133eb0280fc7f206a40a0c45f059e0d45d6 Mon Sep 17 00:00:00 2001 From: shmck Date: Sun, 26 Apr 2020 17:23:48 -0700 Subject: [PATCH 5/5] update changelog for v0.4 release Signed-off-by: shmck --- CHANGELOG.md | 6 ++++-- docs/images/continue-tutorial.png | Bin 0 -> 63787 bytes 2 files changed, 4 insertions(+), 2 deletions(-) create mode 100644 docs/images/continue-tutorial.png diff --git a/CHANGELOG.md b/CHANGELOG.md index adbe6d9f..79da8400 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -94,8 +94,10 @@ Resulting in a folder structure like the following: ## [0.4.0] -- Navigate through text content from previous levels. +- Want to look back at a previous lesson's content? Navigate through text content from previous levels by clicking the "Learn" dropdown. ![traverse content](./docs/images/traverse-content.png) -- Fixes progress navigation bug when no steps in a level +- Continue an incomplete tutorial started in the same workspace. Choose the "continue" path from the start screen. Progress is stored in local storage in the workspace. + +![continue tutorial](./docs/images/continue-tutorial.png) diff --git a/docs/images/continue-tutorial.png b/docs/images/continue-tutorial.png new file mode 100644 index 0000000000000000000000000000000000000000..b6a31d9db892574d910fa70772c176fbfd056fa3 GIT binary patch literal 63787 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