forked from MapComplete/MapComplete
		
	Make question generation laze, huge performance boost
This commit is contained in:
		
							parent
							
								
									8b870474d7
								
							
						
					
					
						commit
						4c2beb5334
					
				
					 2 changed files with 19 additions and 2 deletions
				
			
		
							
								
								
									
										16
									
								
								UI/Base/Lazy.ts
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										16
									
								
								UI/Base/Lazy.ts
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,16 @@
 | 
			
		|||
import BaseUIElement from "../BaseUIElement";
 | 
			
		||||
 | 
			
		||||
export default class Lazy extends BaseUIElement{
 | 
			
		||||
    private readonly _f: () => BaseUIElement;
 | 
			
		||||
    
 | 
			
		||||
    constructor(f: () => BaseUIElement) {
 | 
			
		||||
        super();
 | 
			
		||||
        this._f = f;
 | 
			
		||||
    }
 | 
			
		||||
    
 | 
			
		||||
    protected InnerConstructElement(): HTMLElement {
 | 
			
		||||
        // The caching of the BaseUIElement will guarantee that _f will only be called once
 | 
			
		||||
        return this._f().ConstructElement();
 | 
			
		||||
    }
 | 
			
		||||
    
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			@ -9,6 +9,7 @@ import Toggle from "../Input/Toggle";
 | 
			
		|||
import BaseUIElement from "../BaseUIElement";
 | 
			
		||||
import TagRenderingConfig from "../../Models/ThemeConfig/TagRenderingConfig";
 | 
			
		||||
import {Unit} from "../../Models/Unit";
 | 
			
		||||
import Lazy from "../Base/Lazy";
 | 
			
		||||
 | 
			
		||||
export default class EditableTagRendering extends Toggle {
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -44,14 +45,14 @@ export default class EditableTagRendering extends Toggle {
 | 
			
		|||
                        editMode.setData(false)
 | 
			
		||||
                    });
 | 
			
		||||
 | 
			
		||||
            const question = new TagRenderingQuestion(tags, configuration,
 | 
			
		||||
            const question = new Lazy(() => new TagRenderingQuestion(tags, configuration,
 | 
			
		||||
                {
 | 
			
		||||
                    units: units,
 | 
			
		||||
                    cancelButton: cancelbutton,
 | 
			
		||||
                    afterSave: () => {
 | 
			
		||||
                        editMode.setData(false)
 | 
			
		||||
                    }
 | 
			
		||||
                })
 | 
			
		||||
                }))
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
            rendering = new Toggle(
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue