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

View File

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