File tree Expand file tree Collapse file tree 2 files changed +26
-14
lines changed
web-app/src/containers/SelectTutorial Expand file tree Collapse file tree 2 files changed +26
-14
lines changed Original file line number Diff line number Diff line change 11import * as React from 'react'
22import useFetch from '../../services/hooks/useFetch'
33import * as TT from 'typings/tutorial'
4- import TutorialOverview from '../../components/TutorialOverview'
54import Loading from '../Loading'
65
76interface Props {
87 url : string
9- send : any
10- onClear ( ) : void
8+ onSetDataFromUrl ( data : TT . Tutorial ) : void
119}
1210
1311const LoadTutorialSummary = ( props : Props ) => {
@@ -22,15 +20,8 @@ const LoadTutorialSummary = (props: Props) => {
2220 if ( ! data ) {
2321 return < div > No data returned for tutorial</ div >
2422 }
25- const onNext = ( ) => {
26- props . send ( {
27- type : 'TUTORIAL_START' ,
28- payload : {
29- tutorial : data ,
30- } ,
31- } )
32- }
33- return < TutorialOverview onNext = { onNext } tutorial = { data } onClear = { props . onClear } />
23+ props . onSetDataFromUrl ( data )
24+ return null
3425}
3526
3627export default LoadTutorialSummary
Original file line number Diff line number Diff line change 1+ import * as TT from 'typings/tutorial'
12import * as React from 'react'
23import SelectTutorialForm from './SelectTutorialForm'
4+ import TutorialOverview from '../../components/TutorialOverview'
35import LoadTutorialSummary from './LoadTutorialSummary'
46
57const styles = {
@@ -19,17 +21,36 @@ interface Props {
1921}
2022
2123const SelectTutorialPage = ( props : Props ) => {
22- const [ page , setPage ] = React . useState < 'form' | 'summary' > ( 'form' )
24+ const [ data , setData ] = React . useState < TT . Tutorial | null > ( )
25+ const [ page , setPage ] = React . useState < 'form' | 'loading' | 'summary' > ( 'form' )
2326 const [ tab , setTab ] = React . useState < 'list' | 'url' > ( 'list' )
2427 const [ url , setUrl ] = React . useState < string | null > ( null )
28+
29+ const onNext = ( ) => {
30+ props . send ( {
31+ type : 'TUTORIAL_START' ,
32+ payload : {
33+ tutorial : data ,
34+ } ,
35+ } )
36+ }
2537 const onTutorialLoad = ( url : string ) => {
2638 setUrl ( url )
39+ setPage ( 'loading' )
40+ }
41+ const onSetDataFromUrl = ( d : TT . Tutorial ) => {
42+ setData ( d )
2743 setPage ( 'summary' )
2844 }
45+ const onClear = ( ) => {
46+ setData ( null )
47+ setPage ( 'form' )
48+ }
2949 return (
3050 < div css = { styles . page } >
3151 { page === 'form' && < SelectTutorialForm url = { url } onTutorialLoad = { onTutorialLoad } tab = { tab } setTab = { setTab } /> }
32- { page === 'summary' && url && < LoadTutorialSummary url = { url } send = { props . send } onClear = { ( ) => setPage ( 'form' ) } /> }
52+ { page === 'loading' && url && < LoadTutorialSummary url = { url } onSetDataFromUrl = { onSetDataFromUrl } /> }
53+ { page === 'summary' && data && < TutorialOverview onNext = { onNext } tutorial = { data } onClear = { onClear } /> }
3354 </ div >
3455 )
3556}
You can’t perform that action at this time.
0 commit comments