Merge branch 'tutorial' into assessment
This commit is contained in:
		
						commit
						e766b05dba
					
				
							
								
								
									
										17
									
								
								src/actions/tutorialActions.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										17
									
								
								src/actions/tutorialActions.js
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,17 @@ | ||||
| import { TUTORIAL_SUCCESS, TUTORIAL_ERROR, TUTORIAL_CHANGE } from './types'; | ||||
| 
 | ||||
| export const tutorialChange = () => (dispatch) => { | ||||
|   dispatch({ | ||||
|     type: TUTORIAL_CHANGE | ||||
|   }); | ||||
| }; | ||||
| 
 | ||||
| export const tutorialCheck = (id, status) => (dispatch, getState) => { | ||||
|   var tutorialsStatus = getState().tutorial.status; | ||||
|   tutorialsStatus[id] = {...tutorialsStatus[id], status: status}; | ||||
|   dispatch({ | ||||
|     type: status === 'success' ? TUTORIAL_SUCCESS : TUTORIAL_ERROR, | ||||
|     payload: tutorialsStatus | ||||
|   }); | ||||
|   dispatch(tutorialChange()); | ||||
| }; | ||||
							
								
								
									
										30
									
								
								src/reducers/tutorialReducer.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										30
									
								
								src/reducers/tutorialReducer.js
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,30 @@ | ||||
| import { TUTORIAL_SUCCESS, TUTORIAL_ERROR, TUTORIAL_CHANGE } from '../actions/types'; | ||||
| 
 | ||||
| import { tutorials } from '../components/Tutorial/tutorials'; | ||||
| 
 | ||||
| const initialState = { | ||||
|   status: window.localStorage.getItem('tutorial') ? | ||||
|             JSON.parse(window.localStorage.getItem('tutorial')) | ||||
|           : new Array(tutorials.length).fill({}), | ||||
|   change: 0 | ||||
| }; | ||||
| 
 | ||||
| export default function(state = initialState, action){ | ||||
|   switch(action.type){ | ||||
|     case TUTORIAL_SUCCESS: | ||||
|     case TUTORIAL_ERROR: | ||||
|       // update locale storage - sync with redux store
 | ||||
|       window.localStorage.setItem('tutorial', JSON.stringify(action.payload)); | ||||
|       return { | ||||
|         ...state, | ||||
|         status: action.payload | ||||
|       }; | ||||
|     case TUTORIAL_CHANGE: | ||||
|       return { | ||||
|         ...state, | ||||
|         change: state.change += 1 | ||||
|       } | ||||
|     default: | ||||
|       return state; | ||||
|   } | ||||
| } | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user