From 95e1734d26b175d8d1156abb10863155fed89ec0 Mon Sep 17 00:00:00 2001 From: Rainer Killinger Date: Wed, 7 Dec 2022 17:14:18 +0100 Subject: [PATCH] fix: opening hours pipe refreshing too often --- src/app/translation/common-string-pipes.ts | 2 +- src/app/util/opening-hours.component.ts | 8 +++++++- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/src/app/translation/common-string-pipes.ts b/src/app/translation/common-string-pipes.ts index 5374e474..3104e6dd 100644 --- a/src/app/translation/common-string-pipes.ts +++ b/src/app/translation/common-string-pipes.ts @@ -115,7 +115,7 @@ export class StringSplitPipe implements PipeTransform { @Injectable() @Pipe({ name: 'openingHours', - pure: false, + pure: true, }) export class OpeningHoursPipe implements PipeTransform, OnDestroy { locale: string; diff --git a/src/app/util/opening-hours.component.ts b/src/app/util/opening-hours.component.ts index 136eeedf..fa15686e 100644 --- a/src/app/util/opening-hours.component.ts +++ b/src/app/util/opening-hours.component.ts @@ -55,7 +55,13 @@ export class OpeningHoursComponent implements OnDestroy, OnInit { const millisecondsRemaining = // eslint-disable-next-line unicorn/prefer-date-now - (ohObject.getNextChange()?.getTime() ?? 0) - new Date().getTime(); + (ohObject.getNextChange()?.getTime() ?? 0) - new Date().getTime() + 1000; + + if (millisecondsRemaining > 1_209_600_000) { + // setTimeout has upper bound of 0x7FFFFFFF + // ignore everything over a week + return; + } if (millisecondsRemaining > 0) { this.timer = setTimeout(() => {