From da0cca427bfe4a7c26f74b70285407499756d565 Mon Sep 17 00:00:00 2001 From: On Freund Date: Thu, 23 Apr 2020 17:16:25 +0300 Subject: [PATCH 1/5] Allow passing the current value to config flow input fields --- src/dialogs/config-flow/step-flow-form.ts | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/dialogs/config-flow/step-flow-form.ts b/src/dialogs/config-flow/step-flow-form.ts index 5fe6c98cd51d..dafc5f60e2d0 100644 --- a/src/dialogs/config-flow/step-flow-form.ts +++ b/src/dialogs/config-flow/step-flow-form.ts @@ -122,7 +122,9 @@ class StepFlowForm extends LitElement { const data = {}; this.step.data_schema.forEach((field) => { - if ("default" in field) { + if ("description" in field && "current_value" in field.description) { + data[field.name] = field.description.current_value; + } else if ("default" in field) { data[field.name] = field.default; } }); From 8793418111a2df3ad3cce1f178137f9a7010d8cb Mon Sep 17 00:00:00 2001 From: On Freund Date: Thu, 23 Apr 2020 17:56:02 +0300 Subject: [PATCH 2/5] Fix lint errors --- src/components/ha-form/ha-form.ts | 2 +- src/dialogs/config-flow/step-flow-form.ts | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/components/ha-form/ha-form.ts b/src/components/ha-form/ha-form.ts index ff452c65900a..b4380e39a83f 100644 --- a/src/components/ha-form/ha-form.ts +++ b/src/components/ha-form/ha-form.ts @@ -30,7 +30,7 @@ export interface HaFormBaseSchema { default?: HaFormData; required?: boolean; optional?: boolean; - description?: { suffix?: string }; + description?: { suffix?: string; current_value?: any }; } export interface HaFormIntegerSchema extends HaFormBaseSchema { diff --git a/src/dialogs/config-flow/step-flow-form.ts b/src/dialogs/config-flow/step-flow-form.ts index dafc5f60e2d0..23ba89bf3f34 100644 --- a/src/dialogs/config-flow/step-flow-form.ts +++ b/src/dialogs/config-flow/step-flow-form.ts @@ -122,7 +122,7 @@ class StepFlowForm extends LitElement { const data = {}; this.step.data_schema.forEach((field) => { - if ("description" in field && "current_value" in field.description) { + if (field?.description?.current_value) { data[field.name] = field.description.current_value; } else if ("default" in field) { data[field.name] = field.default; From 0c77f02d9643c8cd31105c427906d8d3a2b27378 Mon Sep 17 00:00:00 2001 From: On Freund Date: Fri, 24 Apr 2020 10:25:39 +0300 Subject: [PATCH 3/5] Apply suggestions from code review Co-Authored-By: Bram Kragten --- src/components/ha-form/ha-form.ts | 2 +- src/dialogs/config-flow/step-flow-form.ts | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/components/ha-form/ha-form.ts b/src/components/ha-form/ha-form.ts index b4380e39a83f..8f8931002e5f 100644 --- a/src/components/ha-form/ha-form.ts +++ b/src/components/ha-form/ha-form.ts @@ -30,7 +30,7 @@ export interface HaFormBaseSchema { default?: HaFormData; required?: boolean; optional?: boolean; - description?: { suffix?: string; current_value?: any }; + description?: { suffix?: string; current_value?: HaFormData }; } export interface HaFormIntegerSchema extends HaFormBaseSchema { diff --git a/src/dialogs/config-flow/step-flow-form.ts b/src/dialogs/config-flow/step-flow-form.ts index 23ba89bf3f34..07a86f49a1dd 100644 --- a/src/dialogs/config-flow/step-flow-form.ts +++ b/src/dialogs/config-flow/step-flow-form.ts @@ -122,7 +122,7 @@ class StepFlowForm extends LitElement { const data = {}; this.step.data_schema.forEach((field) => { - if (field?.description?.current_value) { + if (field.description?.current_value) { data[field.name] = field.description.current_value; } else if ("default" in field) { data[field.name] = field.default; From a9f513adce2e3092565b8a68d32206820b04a086 Mon Sep 17 00:00:00 2001 From: On Freund Date: Thu, 30 Apr 2020 17:20:57 +0300 Subject: [PATCH 4/5] Rename current_value to suggested_value to open up more use cases --- src/components/ha-form/ha-form.ts | 2 +- src/dialogs/config-flow/step-flow-form.ts | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/components/ha-form/ha-form.ts b/src/components/ha-form/ha-form.ts index 8f8931002e5f..be6b4eb1da17 100644 --- a/src/components/ha-form/ha-form.ts +++ b/src/components/ha-form/ha-form.ts @@ -30,7 +30,7 @@ export interface HaFormBaseSchema { default?: HaFormData; required?: boolean; optional?: boolean; - description?: { suffix?: string; current_value?: HaFormData }; + description?: { suffix?: string; suggested_value?: HaFormData }; } export interface HaFormIntegerSchema extends HaFormBaseSchema { diff --git a/src/dialogs/config-flow/step-flow-form.ts b/src/dialogs/config-flow/step-flow-form.ts index 07a86f49a1dd..591f3d7135da 100644 --- a/src/dialogs/config-flow/step-flow-form.ts +++ b/src/dialogs/config-flow/step-flow-form.ts @@ -122,8 +122,8 @@ class StepFlowForm extends LitElement { const data = {}; this.step.data_schema.forEach((field) => { - if (field.description?.current_value) { - data[field.name] = field.description.current_value; + if (field.description?.suggested_value) { + data[field.name] = field.description.suggested_value; } else if ("default" in field) { data[field.name] = field.default; } From 0571d81e1b0349f38a475ca1a8a8e0e216683b31 Mon Sep 17 00:00:00 2001 From: Bram Kragten Date: Thu, 30 Apr 2020 21:52:50 +0200 Subject: [PATCH 5/5] Update ha-form-integer.ts --- src/components/ha-form/ha-form-integer.ts | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/components/ha-form/ha-form-integer.ts b/src/components/ha-form/ha-form-integer.ts index 9fe0929b84a4..0e5674edfb05 100644 --- a/src/components/ha-form/ha-form-integer.ts +++ b/src/components/ha-form/ha-form-integer.ts @@ -77,7 +77,12 @@ export class HaFormInteger extends LitElement implements HaFormElement { } private get _value() { - return this.data || this.schema.default || 0; + return ( + this.data || + this.schema.description?.suggested_value || + this.schema.default || + 0 + ); } private _handleCheckboxChange(ev: Event) {