diff --git a/src/components/ha-selector/ha-selector-boolean.ts b/src/components/ha-selector/ha-selector-boolean.ts index 18ce85b912..60aa8d9435 100644 --- a/src/components/ha-selector/ha-selector-boolean.ts +++ b/src/components/ha-selector/ha-selector-boolean.ts @@ -1,15 +1,19 @@ import { css, CSSResultGroup, html, LitElement } from "lit"; import { customElement, property } from "lit/decorators"; import { fireEvent } from "../../common/dom/fire_event"; +import { BooleanSelector } from "../../data/selector"; import { HomeAssistant } from "../../types"; +import "../ha-checkbox"; import "../ha-formfield"; -import "../ha-switch"; import "../ha-input-helper-text"; +import "../ha-switch"; @customElement("ha-selector-boolean") export class HaBooleanSelector extends LitElement { @property({ attribute: false }) public hass!: HomeAssistant; + @property({ attribute: false }) public selector!: BooleanSelector; + @property({ type: Boolean }) public value = false; @property() public placeholder?: any; @@ -21,13 +25,24 @@ export class HaBooleanSelector extends LitElement { @property({ type: Boolean }) public disabled = false; protected render() { + const checkbox = this.selector.boolean?.mode === "checkbox"; return html` - - + + ${checkbox + ? html` + + ` + : html` + + `} ${this.helper ? html`${this.helper}` diff --git a/src/data/selector.ts b/src/data/selector.ts index 13aa16647e..cd47c8a132 100644 --- a/src/data/selector.ts +++ b/src/data/selector.ts @@ -101,8 +101,9 @@ export interface AttributeSelector { } export interface BooleanSelector { - // eslint-disable-next-line @typescript-eslint/ban-types - boolean: {} | null; + boolean: { + mode?: "checkbox" | "switch"; + } | null; } export interface ColorRGBSelector {