clear workspace after changing tutorial
This commit is contained in:
		
							parent
							
								
									7148d66d19
								
							
						
					
					
						commit
						c00c0949e4
					
				| @ -1,5 +1,7 @@ | |||||||
| import React, { Component } from 'react'; | import React, { Component } from 'react'; | ||||||
| 
 | 
 | ||||||
|  | import * as Blockly from 'blockly/core'; | ||||||
|  | 
 | ||||||
| import Breadcrumbs from '../Breadcrumbs'; | import Breadcrumbs from '../Breadcrumbs'; | ||||||
| import StepperHorizontal from './StepperHorizontal'; | import StepperHorizontal from './StepperHorizontal'; | ||||||
| import StepperVertical from './StepperVertical'; | import StepperVertical from './StepperVertical'; | ||||||
| @ -8,6 +10,7 @@ import CodeViewer from '../CodeViewer'; | |||||||
| import NotFound from '../NotFound'; | import NotFound from '../NotFound'; | ||||||
| 
 | 
 | ||||||
| import tutorials from './tutorials.json'; | import tutorials from './tutorials.json'; | ||||||
|  | import { initialXml } from '../Blockly/initialXml.js'; | ||||||
| 
 | 
 | ||||||
| import Tabs from '@material-ui/core/Tabs'; | import Tabs from '@material-ui/core/Tabs'; | ||||||
| import Tab from '@material-ui/core/Tab'; | import Tab from '@material-ui/core/Tab'; | ||||||
| @ -23,7 +26,14 @@ class Tutorial extends Component { | |||||||
| 
 | 
 | ||||||
|   componentDidUpdate(props, state){ |   componentDidUpdate(props, state){ | ||||||
|     if(state.tutorialId !== Number(this.props.match.params.tutorialId)){ |     if(state.tutorialId !== Number(this.props.match.params.tutorialId)){ | ||||||
|       this.setState({tutorialId: Number(this.props.match.params.tutorialId)}) |       this.setState({tutorialId: Number(this.props.match.params.tutorialId)}); | ||||||
|  |       // clear workspace
 | ||||||
|  |       const workspace = Blockly.getMainWorkspace(); | ||||||
|  |       Blockly.Events.disable(); // https://groups.google.com/forum/#!topic/blockly/m7e3g0TC75Y
 | ||||||
|  |       // if events are disabled, then the workspace will be cleared AND the blocks are not in the trashcan
 | ||||||
|  |       const xmlDom = Blockly.Xml.textToDom(initialXml) | ||||||
|  |       Blockly.Xml.clearWorkspaceAndLoadFromXml(xmlDom, workspace); | ||||||
|  |       Blockly.Events.enable(); | ||||||
|     } |     } | ||||||
|   } |   } | ||||||
| 
 | 
 | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user