diff --git a/src/components/buttons/ha-progress-button.ts b/src/components/buttons/ha-progress-button.ts index eebd0cfa6b..a446d456fc 100644 --- a/src/components/buttons/ha-progress-button.ts +++ b/src/components/buttons/ha-progress-button.ts @@ -1,4 +1,5 @@ import "@material/mwc-button"; +import type { Button } from "@material/mwc-button"; import { css, CSSResult, @@ -7,6 +8,7 @@ import { LitElement, property, TemplateResult, + query, } from "lit-element"; import "../ha-circular-progress"; @@ -17,9 +19,14 @@ class HaProgressButton extends LitElement { @property({ type: Boolean }) public progress = false; + @property({ type: Boolean }) public raised = false; + + @query("mwc-button") private _button?: Button; + public render(): TemplateResult { return html` @@ -42,9 +49,9 @@ class HaProgressButton extends LitElement { } private _tempClass(className: string): void { - this.classList.add(className); + this._button!.classList.add(className); setTimeout(() => { - this.classList.remove(className); + this._button!.classList.remove(className); }, 1000); } @@ -66,18 +73,28 @@ class HaProgressButton extends LitElement { transition: all 1s; } - .success mwc-button { + mwc-button.success { --mdc-theme-primary: white; background-color: var(--success-color); transition: none; } - .error mwc-button { + mwc-button[raised].success { + --mdc-theme-primary: var(--success-color); + --mdc-theme-on-primary: white; + } + + mwc-button.error { --mdc-theme-primary: white; background-color: var(--error-color); transition: none; } + mwc-button[raised].error { + --mdc-theme-primary: var(--error-color); + --mdc-theme-on-primary: white; + } + .progress { bottom: 0; margin-top: 4px; diff --git a/src/panels/developer-tools/service/developer-tools-service.js b/src/panels/developer-tools/service/developer-tools-service.js index 51db6e7645..a0478ac55d 100644 --- a/src/panels/developer-tools/service/developer-tools-service.js +++ b/src/panels/developer-tools/service/developer-tools-service.js @@ -1,8 +1,9 @@ -import "@material/mwc-button"; import { html } from "@polymer/polymer/lib/utils/html-tag"; /* eslint-plugin-disable lit */ import { PolymerElement } from "@polymer/polymer/polymer-element"; import { safeDump, safeLoad } from "js-yaml"; +import { computeRTL } from "../../../common/util/compute_rtl"; +import "../../../components/buttons/ha-progress-button"; import "../../../components/entity/ha-entity-picker"; import "../../../components/ha-code-editor"; import "../../../components/ha-service-picker"; @@ -11,7 +12,6 @@ import { showAlertDialog } from "../../../dialogs/generic/show-dialog-box"; import LocalizeMixin from "../../../mixins/localize-mixin"; import "../../../styles/polymer-ha-style"; import "../../../util/app-localstorage-document"; -import { computeRTL } from "../../../common/util/compute_rtl"; const ERROR_SENTINEL = {}; /* @@ -34,7 +34,7 @@ class HaPanelDevService extends LocalizeMixin(PolymerElement) { max-width: 400px; } - mwc-button { + ha-progress-button { margin-top: 8px; } @@ -136,9 +136,13 @@ class HaPanelDevService extends LocalizeMixin(PolymerElement) { error="[[!validJSON]]" on-value-changed="_yamlChanged" > - + [[localize('ui.panel.developer-tools.tabs.services.call_service')]] - +