add/ delete tutorials/steps in initial state of redux based on tutorials.json
This commit is contained in:
		
							parent
							
								
									f997bb661f
								
							
						
					
					
						commit
						6f77b460cb
					
				| @ -2,10 +2,47 @@ import { TUTORIAL_SUCCESS, TUTORIAL_ERROR, TUTORIAL_CHANGE, TUTORIAL_XML, TUTORI | |||||||
| 
 | 
 | ||||||
| import tutorials from '../components/Tutorial/tutorials.json'; | import tutorials from '../components/Tutorial/tutorials.json'; | ||||||
| 
 | 
 | ||||||
|  | const initialStatus = () => { | ||||||
|  |   if(window.localStorage.getItem('status')){ | ||||||
|  |     var status = JSON.parse(window.localStorage.getItem('status')); | ||||||
|  |     var existingTutorialIds = []; | ||||||
|  |     for(var i = 0; i < tutorials.length; i++){ | ||||||
|  |       var tutorialsId = tutorials[i].id | ||||||
|  |       existingTutorialIds.push(tutorialsId); | ||||||
|  |       if(status.findIndex(status => status.id === tutorialsId) > -1){ | ||||||
|  |         var tasks = tutorials[i].steps.filter(step => step.type === 'task'); | ||||||
|  |         var existingTaskIds = []; | ||||||
|  |         for(var j = 0; j < tasks.length; j++){ | ||||||
|  |           var tasksId = tasks[j].id; | ||||||
|  |           existingTaskIds.push(tasksId); | ||||||
|  |           if(status[i].tasks.findIndex(task => task.id === tasksId) === -1){ | ||||||
|  |             // task does not exist
 | ||||||
|  |             status[i].tasks.push({id: tasksId}); | ||||||
|  |           } | ||||||
|  |         } | ||||||
|  |         // deleting old tasks which do not longer exist
 | ||||||
|  |         if(existingTaskIds.length > 0){ | ||||||
|  |           status[i].tasks = status[i].tasks.filter(task => existingTaskIds.indexOf(task.id) > -1); | ||||||
|  |         } | ||||||
|  |       } | ||||||
|  |       else{ | ||||||
|  |         status.push({id: tutorialsId, tasks: new Array(tutorials[i].steps.filter(step => step.type === 'task').length).fill({})}); | ||||||
|  |       } | ||||||
|  |     } | ||||||
|  |     // deleting old tutorials which do not longer exist
 | ||||||
|  |     if(existingTutorialIds.length > 0){ | ||||||
|  |       status = status.filter(status => existingTutorialIds.indexOf(status.id) > -1); | ||||||
|  |     } | ||||||
|  |     console.log('tutorial', existingTutorialIds); | ||||||
|  |     console.log('tutorial', status); | ||||||
|  |     return status; | ||||||
|  |   } | ||||||
|  |   // window.localStorage.getItem('status') does not exist
 | ||||||
|  |   return tutorials.map(tutorial => {return {id: tutorial.id, tasks: tutorial.steps.filter(step => step.type === 'task').map(task => {return {id: task.id};})};}); | ||||||
|  | }; | ||||||
|  | 
 | ||||||
| const initialState = { | const initialState = { | ||||||
|   status: window.localStorage.getItem('status') ? |   status: initialStatus(), | ||||||
|             JSON.parse(window.localStorage.getItem('status')) |  | ||||||
|           : tutorials.map(tutorial => {return {id: tutorial.id, tasks: new Array(tutorial.steps.filter(step => step.type === 'task').length).fill({}) };}), |  | ||||||
|   currentId: null, |   currentId: null, | ||||||
|   activeStep: 0, |   activeStep: 0, | ||||||
|   change: 0 |   change: 0 | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user