From 2d9b50defc5ee96a8161374e63ce19112c4ccc70 Mon Sep 17 00:00:00 2001 From: Zack Barett Date: Tue, 22 Mar 2022 18:33:16 -0500 Subject: [PATCH] Fix Duration Selector Default (#12098) * Fix Duration Default * USe initial form data function --- .../ha-form/compute-initial-ha-form-data.ts | 22 ++++++++++++++++++- .../ha-selector/ha-selector-duration.ts | 6 ++--- 2 files changed, 24 insertions(+), 4 deletions(-) diff --git a/src/components/ha-form/compute-initial-ha-form-data.ts b/src/components/ha-form/compute-initial-ha-form-data.ts index 0e80433c74..7c5d728d91 100644 --- a/src/components/ha-form/compute-initial-ha-form-data.ts +++ b/src/components/ha-form/compute-initial-ha-form-data.ts @@ -1,4 +1,5 @@ -import { HaFormSchema } from "./types"; +import type { Selector } from "../../data/selector"; +import type { HaFormSchema } from "./types"; export const computeInitialHaFormData = ( schema: HaFormSchema[] @@ -31,6 +32,25 @@ export const computeInitialHaFormData = ( minutes: 0, seconds: 0, }; + } else if ("selector" in field) { + const selector: Selector = field.selector; + if ("boolean" in selector) { + data[field.name] = false; + } else if ("text" in selector) { + data[field.name] = ""; + } else if ("number" in selector) { + data[field.name] = "min" in selector.number ? selector.number.min : 0; + } else if ("select" in selector) { + if (selector.select.options.length) { + data[field.name] = selector.select.options[0][0]; + } + } else if ("duration" in selector) { + data[field.name] = { + hours: 0, + minutes: 0, + seconds: 0, + }; + } } }); return data; diff --git a/src/components/ha-selector/ha-selector-duration.ts b/src/components/ha-selector/ha-selector-duration.ts index 1471750d90..1f5e88b146 100644 --- a/src/components/ha-selector/ha-selector-duration.ts +++ b/src/components/ha-selector/ha-selector-duration.ts @@ -1,8 +1,8 @@ -import "../ha-duration-input"; import { html, LitElement } from "lit"; import { customElement, property } from "lit/decorators"; -import { DurationSelector } from "../../data/selector"; -import { HomeAssistant } from "../../types"; +import type { DurationSelector } from "../../data/selector"; +import type { HomeAssistant } from "../../types"; +import "../ha-duration-input"; @customElement("ha-selector-duration") export class HaTimeDuration extends LitElement {