mirror of
https://github.com/home-assistant/frontend.git
synced 2025-07-23 17:26:42 +00:00
Sort yaml reloads on translated domain (#20857)
This commit is contained in:
parent
66560b1f1c
commit
7d2cee650d
@ -15,6 +15,7 @@ import "../../../components/ha-card";
|
|||||||
import "../../../components/ha-circular-progress";
|
import "../../../components/ha-circular-progress";
|
||||||
import { CheckConfigResult, checkCoreConfig } from "../../../data/core";
|
import { CheckConfigResult, checkCoreConfig } from "../../../data/core";
|
||||||
import { domainToName } from "../../../data/integration";
|
import { domainToName } from "../../../data/integration";
|
||||||
|
import { stringCompare } from "../../../common/string/compare";
|
||||||
import { showRestartDialog } from "../../../dialogs/restart/show-dialog-restart";
|
import { showRestartDialog } from "../../../dialogs/restart/show-dialog-restart";
|
||||||
import { haStyle } from "../../../resources/styles";
|
import { haStyle } from "../../../resources/styles";
|
||||||
import type { HomeAssistant, Route, TranslationDict } from "../../../types";
|
import type { HomeAssistant, Route, TranslationDict } from "../../../types";
|
||||||
@ -24,6 +25,11 @@ type ReloadableDomain = Exclude<
|
|||||||
"heading" | "introduction" | "reload"
|
"heading" | "introduction" | "reload"
|
||||||
>;
|
>;
|
||||||
|
|
||||||
|
interface TranslatedReloadableDomain {
|
||||||
|
domain: ReloadableDomain;
|
||||||
|
name: string;
|
||||||
|
}
|
||||||
|
|
||||||
@customElement("developer-yaml-config")
|
@customElement("developer-yaml-config")
|
||||||
export class DeveloperYamlConfig extends LitElement {
|
export class DeveloperYamlConfig extends LitElement {
|
||||||
@property({ attribute: false }) public hass!: HomeAssistant;
|
@property({ attribute: false }) public hass!: HomeAssistant;
|
||||||
@ -38,7 +44,7 @@ export class DeveloperYamlConfig extends LitElement {
|
|||||||
|
|
||||||
@state() private _validating = false;
|
@state() private _validating = false;
|
||||||
|
|
||||||
@state() private _reloadableDomains: ReloadableDomain[] = [];
|
@state() private _reloadableDomains: TranslatedReloadableDomain[] = [];
|
||||||
|
|
||||||
@state() private _validateResult?: CheckConfigResult;
|
@state() private _validateResult?: CheckConfigResult;
|
||||||
|
|
||||||
@ -51,12 +57,27 @@ export class DeveloperYamlConfig extends LitElement {
|
|||||||
const oldHass = changedProperties.get("hass");
|
const oldHass = changedProperties.get("hass");
|
||||||
if (
|
if (
|
||||||
changedProperties.has("hass") &&
|
changedProperties.has("hass") &&
|
||||||
(!oldHass || oldHass.config.components !== this.hass.config.components)
|
(!oldHass ||
|
||||||
|
oldHass.config.components !== this.hass.config.components ||
|
||||||
|
oldHass.localize !== this.hass.localize)
|
||||||
) {
|
) {
|
||||||
this._reloadableDomains = componentsWithService(
|
this._reloadableDomains = (
|
||||||
this.hass,
|
componentsWithService(this.hass, "reload") as ReloadableDomain[]
|
||||||
"reload"
|
)
|
||||||
).sort() as ReloadableDomain[];
|
.map((domain) => ({
|
||||||
|
domain,
|
||||||
|
name:
|
||||||
|
this.hass.localize(
|
||||||
|
`ui.panel.developer-tools.tabs.yaml.section.reloading.${domain}`
|
||||||
|
) ||
|
||||||
|
this.hass.localize(
|
||||||
|
"ui.panel.developer-tools.tabs.yaml.section.reloading.reload",
|
||||||
|
{ domain: domainToName(this.hass.localize, domain) }
|
||||||
|
),
|
||||||
|
}))
|
||||||
|
.sort((a, b) =>
|
||||||
|
stringCompare(a.name, b.name, this.hass.locale.language)
|
||||||
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -176,19 +197,13 @@ export class DeveloperYamlConfig extends LitElement {
|
|||||||
</ha-call-service-button>
|
</ha-call-service-button>
|
||||||
</div>
|
</div>
|
||||||
${this._reloadableDomains.map(
|
${this._reloadableDomains.map(
|
||||||
(domain) => html`
|
(reloadable) => html`
|
||||||
<div class="card-actions">
|
<div class="card-actions">
|
||||||
<ha-call-service-button
|
<ha-call-service-button
|
||||||
.hass=${this.hass}
|
.hass=${this.hass}
|
||||||
.domain=${domain}
|
.domain=${reloadable.domain}
|
||||||
service="reload"
|
service="reload"
|
||||||
>${this.hass.localize(
|
>${reloadable.name}
|
||||||
`ui.panel.developer-tools.tabs.yaml.section.reloading.${domain}`
|
|
||||||
) ||
|
|
||||||
this.hass.localize(
|
|
||||||
"ui.panel.developer-tools.tabs.yaml.section.reloading.reload",
|
|
||||||
{ domain: domainToName(this.hass.localize, domain) }
|
|
||||||
)}
|
|
||||||
</ha-call-service-button>
|
</ha-call-service-button>
|
||||||
</div>
|
</div>
|
||||||
`
|
`
|
||||||
|
Loading…
x
Reference in New Issue
Block a user