Ensure domain titles are loaded for quick reload items (#17100)

This commit is contained in:
Philip Allgaier 2023-06-29 14:53:08 +02:00 committed by GitHub
parent 82ae04e070
commit b5eb18e163
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 9 additions and 4 deletions

View File

@ -501,7 +501,7 @@ export class QuickBar extends LitElement {
private async _generateCommandItems(): Promise<CommandItem[]> {
return [
...this._generateReloadCommands(),
...(await this._generateReloadCommands()),
...this._generateServerControlCommands(),
...(await this._generateNavigationCommands()),
].sort((a, b) =>
@ -513,17 +513,22 @@ export class QuickBar extends LitElement {
);
}
private _generateReloadCommands(): CommandItem[] {
private async _generateReloadCommands(): Promise<CommandItem[]> {
// Get all domains that have a direct "reload" service
const reloadableDomains = componentsWithService(this.hass, "reload");
const localize = await this.hass.loadBackendTranslation(
"title",
reloadableDomains
);
const commands = reloadableDomains.map((domain) => ({
primaryText:
this.hass.localize(`ui.dialogs.quick-bar.commands.reload.${domain}`) ||
this.hass.localize(
"ui.dialogs.quick-bar.commands.reload.reload",
"domain",
domainToName(this.hass.localize, domain)
domainToName(localize, domain)
),
action: () => this.hass.callService(domain, "reload"),
iconPath: mdiReload,

View File

@ -251,7 +251,7 @@ export interface HomeAssistant {
callWS<T>(msg: MessageBase): Promise<T>;
loadBackendTranslation(
category: Parameters<typeof getHassTranslations>[2],
integration?: Parameters<typeof getHassTranslations>[3],
integrations?: Parameters<typeof getHassTranslations>[3],
configFlow?: Parameters<typeof getHassTranslations>[4]
): Promise<LocalizeFunc>;
loadFragmentTranslation(fragment: string): Promise<LocalizeFunc | undefined>;