redux store of builder
This commit is contained in:
		
							parent
							
								
									1c2b025493
								
							
						
					
					
						commit
						458770e0c4
					
				
							
								
								
									
										83
									
								
								src/actions/tutorialBuilderActions.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										83
									
								
								src/actions/tutorialBuilderActions.js
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,83 @@ | ||||
| import { BUILDER_CHANGE, BUILDER_TITLE, BUILDER_ID, BUILDER_ADD_STEP, BUILDER_DELETE_STEP, BUILDER_CHANGE_STEP, BUILDER_CHANGE_ORDER, BUILDER_DELETE_PROPERTY } from './types'; | ||||
| 
 | ||||
| export const changeTutorialBuilder = () => (dispatch) => { | ||||
|   dispatch({ | ||||
|     type: BUILDER_CHANGE | ||||
|   }); | ||||
| }; | ||||
| 
 | ||||
| export const tutorialTitle = (title) => (dispatch) => { | ||||
|   dispatch({ | ||||
|     type: BUILDER_TITLE, | ||||
|     payload: title | ||||
|   }); | ||||
|   dispatch(changeTutorialBuilder()); | ||||
| }; | ||||
| 
 | ||||
| export const tutorialId = (id) => (dispatch) => { | ||||
|   dispatch({ | ||||
|     type: BUILDER_ID, | ||||
|     payload: id | ||||
|   }); | ||||
|   dispatch(changeTutorialBuilder()); | ||||
| }; | ||||
| 
 | ||||
| export const addStep = (index) => (dispatch, getState) => { | ||||
|   var steps = getState().builder.steps; | ||||
|   var step = { | ||||
|     id: index+1, | ||||
|     type: 'instruction', | ||||
|     headline: '', | ||||
|     text: '' | ||||
|   }; | ||||
|   steps.splice(index, 0, step); | ||||
|   dispatch({ | ||||
|     type: BUILDER_ADD_STEP, | ||||
|     payload: steps | ||||
|   }); | ||||
|   dispatch(changeTutorialBuilder()); | ||||
| }; | ||||
| 
 | ||||
| export const removeStep = (index) => (dispatch, getState) => { | ||||
|   var steps = getState().builder.steps; | ||||
|   steps.splice(index, 1); | ||||
|   dispatch({ | ||||
|     type: BUILDER_DELETE_STEP, | ||||
|     payload: steps | ||||
|   }); | ||||
|   dispatch(changeTutorialBuilder()); | ||||
| }; | ||||
| 
 | ||||
| export const changeContent = (index, property, content) => (dispatch, getState) => { | ||||
|   var steps = getState().builder.steps; | ||||
|   var step = steps[index]; | ||||
|   step[property] = content; | ||||
|   dispatch({ | ||||
|     type: BUILDER_CHANGE_STEP, | ||||
|     payload: steps | ||||
|   }); | ||||
|   dispatch(changeTutorialBuilder()); | ||||
| }; | ||||
| 
 | ||||
| export const deleteProperty = (index, property) => (dispatch, getState) => { | ||||
|   var steps = getState().builder.steps; | ||||
|   var step = steps[index]; | ||||
|   delete step[property]; | ||||
|   dispatch({ | ||||
|     type: BUILDER_DELETE_PROPERTY, | ||||
|     payload: steps | ||||
|   }); | ||||
|   dispatch(changeTutorialBuilder()); | ||||
| }; | ||||
| 
 | ||||
| export const changeStepIndex = (fromIndex, toIndex) => (dispatch, getState) => { | ||||
|   var steps = getState().builder.steps; | ||||
|   var step = steps[fromIndex]; | ||||
|   steps.splice(fromIndex, 1); | ||||
|   steps.splice(toIndex, 0, step); | ||||
|   dispatch({ | ||||
|     type: BUILDER_CHANGE_ORDER, | ||||
|     payload: steps | ||||
|   }); | ||||
|   dispatch(changeTutorialBuilder()); | ||||
| }; | ||||
| @ -14,3 +14,13 @@ export const TUTORIAL_CHANGE = 'TUTORIAL_CHANGE'; | ||||
| export const TUTORIAL_XML = 'TUTORIAL_XML'; | ||||
| export const TUTORIAL_ID = 'TUTORIAL_ID'; | ||||
| export const TUTORIAL_STEP = 'TUTORIAL_STEP'; | ||||
| 
 | ||||
| 
 | ||||
| export const BUILDER_CHANGE = 'BUILDER_CHANGE'; | ||||
| export const BUILDER_TITLE = 'BUILDER_TITLE'; | ||||
| export const BUILDER_ID = 'BUILDER_ID'; | ||||
| export const BUILDER_ADD_STEP = 'BUILDER_ADD_STEP'; | ||||
| export const BUILDER_DELETE_STEP = 'BUILDER_DELETE_STEP'; | ||||
| export const BUILDER_CHANGE_STEP = 'BUILDER_CHANGE_STEP'; | ||||
| export const BUILDER_CHANGE_ORDER = 'BUILDER_CHANGE_ORDER'; | ||||
| export const BUILDER_DELETE_PROPERTY = 'BUILDER_DELETE_PROPERTY'; | ||||
|  | ||||
| @ -1,8 +1,10 @@ | ||||
| import { combineReducers } from 'redux'; | ||||
| import workspaceReducer from './workspaceReducer'; | ||||
| import tutorialReducer from './tutorialReducer'; | ||||
| import tutorialBuilderReducer from './tutorialBuilderReducer'; | ||||
| 
 | ||||
| export default combineReducers({ | ||||
|   workspace: workspaceReducer, | ||||
|   tutorial: tutorialReducer | ||||
|   tutorial: tutorialReducer, | ||||
|   builder: tutorialBuilderReducer | ||||
| }); | ||||
|  | ||||
							
								
								
									
										48
									
								
								src/reducers/tutorialBuilderReducer.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										48
									
								
								src/reducers/tutorialBuilderReducer.js
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,48 @@ | ||||
| import { BUILDER_CHANGE, BUILDER_TITLE, BUILDER_ID, BUILDER_ADD_STEP, BUILDER_DELETE_STEP, BUILDER_CHANGE_STEP,BUILDER_CHANGE_ORDER, BUILDER_DELETE_PROPERTY } from '../actions/types'; | ||||
| 
 | ||||
| const initialState = { | ||||
|   change: 0, | ||||
|   title: '', | ||||
|   id: 0, | ||||
|   steps: [ | ||||
|     { | ||||
|       id: 1, | ||||
|       type: 'instruction', | ||||
|       headline: '', | ||||
|       text: '', | ||||
|       hardware: [], | ||||
|       requirements: [] | ||||
|     } | ||||
|   ] | ||||
| }; | ||||
| 
 | ||||
| export default function(state = initialState, action){ | ||||
|   switch(action.type){ | ||||
|     case BUILDER_CHANGE: | ||||
|       return { | ||||
|         ...state, | ||||
|         change: state.change += 1 | ||||
|       }; | ||||
|     case BUILDER_TITLE: | ||||
|       return { | ||||
|         ...state, | ||||
|         title: action.payload | ||||
|       }; | ||||
|     case BUILDER_ID: | ||||
|       return { | ||||
|         ...state, | ||||
|         id: action.payload | ||||
|       }; | ||||
|     case BUILDER_ADD_STEP: | ||||
|     case BUILDER_DELETE_STEP: | ||||
|     case BUILDER_CHANGE_STEP: | ||||
|     case BUILDER_CHANGE_ORDER: | ||||
|     case BUILDER_DELETE_PROPERTY: | ||||
|       return { | ||||
|         ...state, | ||||
|         steps: action.payload | ||||
|       }; | ||||
|     default: | ||||
|       return state; | ||||
|   } | ||||
| } | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user