From ff64dc26314e5900a50f18ed50f291a13c710d5f Mon Sep 17 00:00:00 2001 From: Philip Allgaier Date: Tue, 6 Dec 2022 13:23:04 +0100 Subject: [PATCH] Prevent invalid event durations in calendar (#14545) Co-authored-by: Bram Kragten --- .../calendar/dialog-calendar-event-editor.ts | 70 ++++++++++++++++++- src/translations/en.json | 4 +- 2 files changed, 72 insertions(+), 2 deletions(-) diff --git a/src/panels/calendar/dialog-calendar-event-editor.ts b/src/panels/calendar/dialog-calendar-event-editor.ts index 06dc41c1fe..f8cb528300 100644 --- a/src/panels/calendar/dialog-calendar-event-editor.ts +++ b/src/panels/calendar/dialog-calendar-event-editor.ts @@ -1,7 +1,13 @@ import "@material/mwc-button"; import { mdiClose } from "@mdi/js"; import { ComboBoxLitRenderer } from "@vaadin/combo-box/lit"; -import { addDays, addHours, startOfHour } from "date-fns/esm"; +import { + addDays, + addHours, + addMilliseconds, + differenceInMilliseconds, + startOfHour, +} from "date-fns/esm"; import { css, CSSResultGroup, html, LitElement, TemplateResult } from "lit"; import { customElement, property, state } from "lit/decorators"; import memoizeOne from "memoize-one"; @@ -35,6 +41,8 @@ class DialogCalendarEventEditor extends LitElement { @state() private _error?: string; + @state() private _info?: string; + @state() private _params?: CalendarEventDetailDialogParams; @state() private _calendars: Calendar[] = []; @@ -57,6 +65,7 @@ class DialogCalendarEventEditor extends LitElement { public showDialog(params: CalendarEventEditDialogParams): void { this._error = undefined; + this._info = undefined; this._params = params; this._calendars = params.calendars; this._calendarId = params.calendarId || this._calendars[0].entity_id; @@ -120,6 +129,14 @@ class DialogCalendarEventEditor extends LitElement { ${this._error ? html`${this._error}` : ""} + ${this._info + ? html`${this._info}` + : ""}