forked from MapComplete/MapComplete
		
	Autoload OH if country code is not yet loaded
This commit is contained in:
		
							parent
							
								
									c9478c100a
								
							
						
					
					
						commit
						feab5a19b3
					
				
					 4 changed files with 19 additions and 5 deletions
				
			
		| 
						 | 
				
			
			@ -113,12 +113,16 @@ export class UIEventSource<T>{
 | 
			
		|||
        return newSource;
 | 
			
		||||
    }
 | 
			
		||||
    
 | 
			
		||||
    public static Chronic(millis: number):UIEventSource<Date>{
 | 
			
		||||
    public static Chronic(millis: number, asLong: () => boolean = undefined): UIEventSource<Date> {
 | 
			
		||||
        const source = new UIEventSource<Date>(undefined);
 | 
			
		||||
 | 
			
		||||
        function run() {
 | 
			
		||||
            source.setData(new Date());
 | 
			
		||||
            if (asLong === undefined || asLong()) {
 | 
			
		||||
                window.setTimeout(run, millis);
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        run();
 | 
			
		||||
        return source;
 | 
			
		||||
        
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										2
									
								
								State.ts
									
										
									
									
									
								
							
							
						
						
									
										2
									
								
								State.ts
									
										
									
									
									
								
							| 
						 | 
				
			
			@ -23,7 +23,7 @@ export default class State {
 | 
			
		|||
    // The singleton of the global state
 | 
			
		||||
    public static state: State;
 | 
			
		||||
    
 | 
			
		||||
    public static vNumber = "0.1.0c";
 | 
			
		||||
    public static vNumber = "0.1.0d";
 | 
			
		||||
    
 | 
			
		||||
    // The user journey states thresholds when a new feature gets unlocked
 | 
			
		||||
    public static userJourney = {
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -13,9 +13,15 @@ export default class OpeningHoursVisualization extends UIElement {
 | 
			
		|||
        super(tags);
 | 
			
		||||
        this._key = key;
 | 
			
		||||
        this.ListenTo(UIEventSource.Chronic(60*1000)); // Automatically reload every minute
 | 
			
		||||
        this.ListenTo(UIEventSource.Chronic(500, () => {
 | 
			
		||||
            return tags.data._country === undefined;
 | 
			
		||||
        }));
 | 
			
		||||
        
 | 
			
		||||
        
 | 
			
		||||
    }
 | 
			
		||||
    
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
    private static GetRanges(oh: any, from: Date, to: Date): ({
 | 
			
		||||
        isOpen: boolean,
 | 
			
		||||
        isSpecial: boolean,
 | 
			
		||||
| 
						 | 
				
			
			@ -144,6 +150,9 @@ export default class OpeningHoursVisualization extends UIElement {
 | 
			
		|||
        nextSunday.setDate(nextSunday.getDate() + 7);
 | 
			
		||||
 | 
			
		||||
        const tags = this._source.data;
 | 
			
		||||
        if(tags._country === undefined){
 | 
			
		||||
            return "Loading...";
 | 
			
		||||
        }
 | 
			
		||||
        const oh = new opening_hours(tags[this._key], {
 | 
			
		||||
            lat: tags._lat,
 | 
			
		||||
            lon: tags._lon,
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										5
									
								
								test.ts
									
										
									
									
									
								
							
							
						
						
									
										5
									
								
								test.ts
									
										
									
									
									
								
							| 
						 | 
				
			
			@ -5,10 +5,11 @@ import {UIEventSource} from "./Logic/UIEventSource";
 | 
			
		|||
import OpeningHoursVisualization from "./UI/OhVisualization";
 | 
			
		||||
 | 
			
		||||
const oh = "Tu-Fr 09:00-17:00 'as usual'; mo off 'yyy'; su off 'xxx'"
 | 
			
		||||
 | 
			
		||||
new OpeningHoursVisualization(new UIEventSource<any>({opening_hours:oh}), 'opening_hours').AttachTo('maindiv')
 | 
			
		||||
const tags = new UIEventSource<any>({opening_hours:oh});
 | 
			
		||||
new OpeningHoursVisualization(tags, 'opening_hours').AttachTo('maindiv')
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
window.setTimeout(() => {tags.data._country = "be"; }, 5000)
 | 
			
		||||
/*/
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue