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;
|
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);
|
const source = new UIEventSource<Date>(undefined);
|
||||||
|
|
||||||
function run() {
|
function run() {
|
||||||
source.setData(new Date());
|
source.setData(new Date());
|
||||||
|
if (asLong === undefined || asLong()) {
|
||||||
window.setTimeout(run, millis);
|
window.setTimeout(run, millis);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
run();
|
run();
|
||||||
return source;
|
return source;
|
||||||
|
|
||||||
|
|
2
State.ts
2
State.ts
|
@ -23,7 +23,7 @@ export default class State {
|
||||||
// The singleton of the global state
|
// The singleton of the global state
|
||||||
public static state: 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
|
// The user journey states thresholds when a new feature gets unlocked
|
||||||
public static userJourney = {
|
public static userJourney = {
|
||||||
|
|
|
@ -13,9 +13,15 @@ export default class OpeningHoursVisualization extends UIElement {
|
||||||
super(tags);
|
super(tags);
|
||||||
this._key = key;
|
this._key = key;
|
||||||
this.ListenTo(UIEventSource.Chronic(60*1000)); // Automatically reload every minute
|
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): ({
|
private static GetRanges(oh: any, from: Date, to: Date): ({
|
||||||
isOpen: boolean,
|
isOpen: boolean,
|
||||||
isSpecial: boolean,
|
isSpecial: boolean,
|
||||||
|
@ -144,6 +150,9 @@ export default class OpeningHoursVisualization extends UIElement {
|
||||||
nextSunday.setDate(nextSunday.getDate() + 7);
|
nextSunday.setDate(nextSunday.getDate() + 7);
|
||||||
|
|
||||||
const tags = this._source.data;
|
const tags = this._source.data;
|
||||||
|
if(tags._country === undefined){
|
||||||
|
return "Loading...";
|
||||||
|
}
|
||||||
const oh = new opening_hours(tags[this._key], {
|
const oh = new opening_hours(tags[this._key], {
|
||||||
lat: tags._lat,
|
lat: tags._lat,
|
||||||
lon: tags._lon,
|
lon: tags._lon,
|
||||||
|
|
5
test.ts
5
test.ts
|
@ -5,10 +5,11 @@ import {UIEventSource} from "./Logic/UIEventSource";
|
||||||
import OpeningHoursVisualization from "./UI/OhVisualization";
|
import OpeningHoursVisualization from "./UI/OhVisualization";
|
||||||
|
|
||||||
const oh = "Tu-Fr 09:00-17:00 'as usual'; mo off 'yyy'; su off 'xxx'"
|
const oh = "Tu-Fr 09:00-17:00 'as usual'; mo off 'yyy'; su off 'xxx'"
|
||||||
|
const tags = new UIEventSource<any>({opening_hours:oh});
|
||||||
new OpeningHoursVisualization(new UIEventSource<any>({opening_hours:oh}), 'opening_hours').AttachTo('maindiv')
|
new OpeningHoursVisualization(tags, 'opening_hours').AttachTo('maindiv')
|
||||||
|
|
||||||
|
|
||||||
|
window.setTimeout(() => {tags.data._country = "be"; }, 5000)
|
||||||
/*/
|
/*/
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue