diff --git a/src/client/types/wrapper.ts b/src/client/types/wrapper.ts index faf74ec..4a84a63 100644 --- a/src/client/types/wrapper.ts +++ b/src/client/types/wrapper.ts @@ -18,8 +18,8 @@ class journey_wrapper { leg_count(): number { return this.data.main.length; } - leg_len(idx: number = null): number { - let d = this.leg_get(idx == null ? this.sel_leg : idx).date_range; + leg_len(idx?: number): number { + let d = this.leg_get(idx == undefined ? this.sel_leg : idx).date_range; return d ? date_day_diff(d[0], d[1]) + 1 : 1; } add_leg(): void { @@ -32,20 +32,20 @@ class journey_wrapper { } tot_len(): number | "?" { if (this.leg_count() == 0) return 0; - try { - let d0 = this.leg_first().date_range[0] - let d1 = this.leg_last().date_range[1] + let lf = this.leg_first(), ll = this.leg_last(); + if (lf.date_range && ll.date_range) { + let d0 = lf.date_range[0] + let d1 = ll.date_range[1] return date_day_diff(d0, d1); - } catch { - return "?"; } + return "?"; } leg_sel(idx: number): void { this.sel_leg = idx; this.sel_day = 1; } - leg_get(idx: number = null): leg { - return this.data.main[idx == null ? this.sel_leg : idx] + leg_get(idx?: number): leg { + return this.data.main[idx != undefined ? idx : this.sel_leg] } leg_next(): void { this.sel_leg = Math.min(this.sel_leg + 1, this.leg_count() - 1); @@ -79,25 +79,26 @@ class journey_wrapper { } date_sel(): string { if (this.sel_day < 0) return "?"; - if (!this.leg_get().date_range) + let leg = this.leg_get() + if (!leg.date_range) return "?"; var date = new Date( - this.leg_get().date_range[0], + leg.date_range[0], ); date.setDate(date.getDate() + this.sel_day); return date.toLocal(); } date_tot() { if (this.leg_count() == 0) return ""; - try { - return `${this.leg_first().date_range[0].toLocal()} - ${this.leg_last().date_range[1].toLocal()}`; - } catch { - return "?"; - } + let lf = this.leg_first(), ll = this.leg_last(); + if (lf.date_range && ll.date_range) + return `${lf.date_range[0].toLocal()} - ${ll[1].toLocal()}`; + return "?"; } date_update(idx: number) { let date_range = this.leg_get(idx).date_range; + if (!date_range) return; let start_end = [0, 0]; let step_len = 0; @@ -110,11 +111,14 @@ class journey_wrapper { this.leg_get(i).date_range = [new Date(), new Date()]; start_end = [last_start.getDate() - step_len, last_start.getDate()]; } - this.leg_get(i).date_range[0].setTime(last_start.getTime()); - this.leg_get(i).date_range[0].setDate(start_end[0]); - this.leg_get(i).date_range[1].setTime(last_start.getTime()); - this.leg_get(i).date_range[1].setDate(start_end[1]); - last_start = this.leg_get(i).date_range[0]; + let leg = this.leg_get(i) + if (leg.date_range) { + leg.date_range[0].setTime(last_start.getTime()); + leg.date_range[0].setDate(start_end[0]); + leg.date_range[1].setTime(last_start.getTime()); + leg.date_range[1].setDate(start_end[1]); + last_start = leg.date_range[0]; + } } let last_end = date_range[1]; @@ -126,11 +130,14 @@ class journey_wrapper { this.leg_get(i).date_range = [new Date(), new Date()]; start_end = [last_end.getDate(), last_end.getDate() + step_len]; } - this.leg_get(i).date_range[0].setTime(last_end.getTime()); - this.leg_get(i).date_range[0].setDate(start_end[0]); - this.leg_get(i).date_range[1].setTime(last_end.getTime()); - this.leg_get(i).date_range[1].setDate(start_end[1]); - last_end = this.leg_get(i).date_range[1]; + let leg = this.leg_get(i) + if (leg.date_range) { + leg.date_range[0].setTime(last_end.getTime()); + leg.date_range[0].setDate(start_end[0]); + leg.date_range[1].setTime(last_end.getTime()); + leg.date_range[1].setDate(start_end[1]); + last_end = leg.date_range[1]; + } } } }