mirror of
https://github.com/home-assistant/frontend.git
synced 2025-07-27 03:06:41 +00:00
Use supported_languages for stt, tts and conversation (#16256)
* Use supported_languages for stt, tts and conversation * Fix disabled condition
This commit is contained in:
parent
a43f49f4af
commit
be1867900e
@ -63,7 +63,7 @@ export class HaConversationAgentPicker extends LitElement {
|
|||||||
(agent) =>
|
(agent) =>
|
||||||
html`<ha-list-item
|
html`<ha-list-item
|
||||||
.value=${agent.id}
|
.value=${agent.id}
|
||||||
.disabled=${agent.language_supported === false}
|
.disabled=${agent.supported_languages?.length === 0}
|
||||||
>
|
>
|
||||||
${agent.name}
|
${agent.name}
|
||||||
</ha-list-item>`
|
</ha-list-item>`
|
||||||
@ -88,11 +88,13 @@ export class HaConversationAgentPicker extends LitElement {
|
|||||||
|
|
||||||
this._agents = agents;
|
this._agents = agents;
|
||||||
|
|
||||||
if (
|
if (!this.value) {
|
||||||
this.value &&
|
return;
|
||||||
agents.find((agent) => agent.id === this.value)?.language_supported ===
|
}
|
||||||
false
|
|
||||||
) {
|
const selectedAgent = agents.find((agent) => agent.id === this.value);
|
||||||
|
|
||||||
|
if (!selectedAgent || selectedAgent.supported_languages?.length === 0) {
|
||||||
this.value = undefined;
|
this.value = undefined;
|
||||||
fireEvent(this, "value-changed", { value: this.value });
|
fireEvent(this, "value-changed", { value: this.value });
|
||||||
}
|
}
|
||||||
|
@ -42,7 +42,9 @@ export class HaSTTPicker extends LitElement {
|
|||||||
const value =
|
const value =
|
||||||
this.value ??
|
this.value ??
|
||||||
(this.required
|
(this.required
|
||||||
? this._engines.find((engine) => engine.language_supported)
|
? this._engines.find(
|
||||||
|
(engine) => engine.supported_languages?.length !== 0
|
||||||
|
)
|
||||||
: NONE);
|
: NONE);
|
||||||
return html`
|
return html`
|
||||||
<ha-select
|
<ha-select
|
||||||
@ -65,7 +67,7 @@ export class HaSTTPicker extends LitElement {
|
|||||||
const stateObj = this.hass!.states[engine.engine_id];
|
const stateObj = this.hass!.states[engine.engine_id];
|
||||||
return html`<ha-list-item
|
return html`<ha-list-item
|
||||||
.value=${engine.engine_id}
|
.value=${engine.engine_id}
|
||||||
.disabled=${engine.language_supported === false}
|
.disabled=${engine.supported_languages?.length === 0}
|
||||||
>
|
>
|
||||||
${stateObj ? computeStateName(stateObj) : engine.engine_id}
|
${stateObj ? computeStateName(stateObj) : engine.engine_id}
|
||||||
</ha-list-item>`;
|
</ha-list-item>`;
|
||||||
@ -88,11 +90,15 @@ export class HaSTTPicker extends LitElement {
|
|||||||
private async _updateEngines() {
|
private async _updateEngines() {
|
||||||
this._engines = (await listSTTEngines(this.hass, this.language)).providers;
|
this._engines = (await listSTTEngines(this.hass, this.language)).providers;
|
||||||
|
|
||||||
if (
|
if (!this.value) {
|
||||||
this.value &&
|
return;
|
||||||
this._engines.find((engine) => engine.engine_id === this.value)
|
}
|
||||||
?.language_supported === false
|
|
||||||
) {
|
const selectedEngine = this._engines.find(
|
||||||
|
(engine) => engine.engine_id === this.value
|
||||||
|
);
|
||||||
|
|
||||||
|
if (!selectedEngine || selectedEngine.supported_languages?.length === 0) {
|
||||||
this.value = undefined;
|
this.value = undefined;
|
||||||
fireEvent(this, "value-changed", { value: this.value });
|
fireEvent(this, "value-changed", { value: this.value });
|
||||||
}
|
}
|
||||||
|
@ -42,7 +42,9 @@ export class HaTTSPicker extends LitElement {
|
|||||||
const value =
|
const value =
|
||||||
this.value ??
|
this.value ??
|
||||||
(this.required
|
(this.required
|
||||||
? this._engines.find((engine) => engine.language_supported)
|
? this._engines.find(
|
||||||
|
(engine) => engine.supported_languages?.length !== 0
|
||||||
|
)
|
||||||
: NONE);
|
: NONE);
|
||||||
return html`
|
return html`
|
||||||
<ha-select
|
<ha-select
|
||||||
@ -65,7 +67,7 @@ export class HaTTSPicker extends LitElement {
|
|||||||
const stateObj = this.hass!.states[engine.engine_id];
|
const stateObj = this.hass!.states[engine.engine_id];
|
||||||
return html`<ha-list-item
|
return html`<ha-list-item
|
||||||
.value=${engine.engine_id}
|
.value=${engine.engine_id}
|
||||||
.disabled=${engine.language_supported === false}
|
.disabled=${engine.supported_languages?.length === 0}
|
||||||
>
|
>
|
||||||
${stateObj ? computeStateName(stateObj) : engine.engine_id}
|
${stateObj ? computeStateName(stateObj) : engine.engine_id}
|
||||||
</ha-list-item>`;
|
</ha-list-item>`;
|
||||||
@ -88,11 +90,15 @@ export class HaTTSPicker extends LitElement {
|
|||||||
private async _updateEngines() {
|
private async _updateEngines() {
|
||||||
this._engines = (await listTTSEngines(this.hass, this.language)).providers;
|
this._engines = (await listTTSEngines(this.hass, this.language)).providers;
|
||||||
|
|
||||||
if (
|
if (!this.value) {
|
||||||
this.value &&
|
return;
|
||||||
this._engines.find((engine) => engine.engine_id === this.value)
|
}
|
||||||
?.language_supported === false
|
|
||||||
) {
|
const selectedEngine = this._engines.find(
|
||||||
|
(engine) => engine.engine_id === this.value
|
||||||
|
);
|
||||||
|
|
||||||
|
if (!selectedEngine || selectedEngine.supported_languages?.length === 0) {
|
||||||
this.value = undefined;
|
this.value = undefined;
|
||||||
fireEvent(this, "value-changed", { value: this.value });
|
fireEvent(this, "value-changed", { value: this.value });
|
||||||
}
|
}
|
||||||
|
@ -59,7 +59,7 @@ export interface AgentInfo {
|
|||||||
export interface Agent {
|
export interface Agent {
|
||||||
id: string;
|
id: string;
|
||||||
name: string;
|
name: string;
|
||||||
language_supported: boolean;
|
supported_languages?: string[];
|
||||||
}
|
}
|
||||||
|
|
||||||
export const processConversationInput = (
|
export const processConversationInput = (
|
||||||
|
@ -20,7 +20,7 @@ export interface SpeechMetadata {
|
|||||||
|
|
||||||
export interface STTEngine {
|
export interface STTEngine {
|
||||||
engine_id: string;
|
engine_id: string;
|
||||||
language_supported?: boolean;
|
supported_languages?: string[];
|
||||||
}
|
}
|
||||||
|
|
||||||
export const listSTTEngines = (
|
export const listSTTEngines = (
|
||||||
|
@ -2,7 +2,7 @@ import { HomeAssistant } from "../types";
|
|||||||
|
|
||||||
export interface TTSEngine {
|
export interface TTSEngine {
|
||||||
engine_id: string;
|
engine_id: string;
|
||||||
language_supported?: boolean;
|
supported_languages?: string[];
|
||||||
}
|
}
|
||||||
|
|
||||||
export interface TTSVoice {
|
export interface TTSVoice {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user