Fix backup settings undefined cloudStatus (#25366)

This commit is contained in:
Wendelin 2025-05-08 13:47:17 +02:00 committed by Bram Kragten
parent 5cc87661b9
commit 3fe907f388
2 changed files with 15 additions and 12 deletions

View File

@ -31,7 +31,7 @@ const DEFAULT_AGENTS = [];
class HaBackupConfigAgents extends LitElement { class HaBackupConfigAgents extends LitElement {
@property({ attribute: false }) public hass!: HomeAssistant; @property({ attribute: false }) public hass!: HomeAssistant;
@property({ attribute: false }) public cloudStatus!: CloudStatus; @property({ attribute: false }) public cloudStatus?: CloudStatus;
@property({ attribute: false }) public agents: BackupAgent[] = []; @property({ attribute: false }) public agents: BackupAgent[] = [];
@ -48,7 +48,10 @@ class HaBackupConfigAgents extends LitElement {
private _description(agentId: string) { private _description(agentId: string) {
if (agentId === CLOUD_AGENT) { if (agentId === CLOUD_AGENT) {
if (this.cloudStatus.logged_in && !this.cloudStatus.active_subscription) { if (
this.cloudStatus?.logged_in &&
!this.cloudStatus.active_subscription
) {
return this.hass.localize( return this.hass.localize(
"ui.panel.config.backup.agents.cloud_agent_no_subcription" "ui.panel.config.backup.agents.cloud_agent_no_subcription"
); );
@ -106,17 +109,17 @@ class HaBackupConfigAgents extends LitElement {
} }
private _availableAgents = memoizeOne( private _availableAgents = memoizeOne(
(agents: BackupAgent[], cloudStatus: CloudStatus) => (agents: BackupAgent[], cloudStatus?: CloudStatus) =>
agents.filter( agents.filter(
(agent) => agent.agent_id !== CLOUD_AGENT || cloudStatus.logged_in (agent) => agent.agent_id !== CLOUD_AGENT || cloudStatus?.logged_in
) )
); );
private _unavailableAgents = memoizeOne( private _unavailableAgents = memoizeOne(
( (
agents: BackupAgent[], agents: BackupAgent[],
cloudStatus: CloudStatus, selectedAgentIds: string[],
selectedAgentIds: string[] cloudStatus?: CloudStatus
) => { ) => {
const availableAgentIds = this._availableAgents(agents, cloudStatus).map( const availableAgentIds = this._availableAgents(agents, cloudStatus).map(
(agent) => agent.agent_id (agent) => agent.agent_id
@ -167,8 +170,8 @@ class HaBackupConfigAgents extends LitElement {
); );
const unavailableAgents = this._unavailableAgents( const unavailableAgents = this._unavailableAgents(
this.agents, this.agents,
this.cloudStatus, this._value,
this._value this.cloudStatus
); );
const allAgents = [...availableAgents, ...unavailableAgents]; const allAgents = [...availableAgents, ...unavailableAgents];
@ -187,7 +190,7 @@ class HaBackupConfigAgents extends LitElement {
const description = this._description(agentId); const description = this._description(agentId);
const noCloudSubscription = const noCloudSubscription =
agentId === CLOUD_AGENT && agentId === CLOUD_AGENT &&
this.cloudStatus.logged_in && this.cloudStatus?.logged_in &&
!this.cloudStatus.active_subscription; !this.cloudStatus.active_subscription;
return html` return html`

View File

@ -41,7 +41,7 @@ import { brandsUrl } from "../../../util/brands-url";
class HaConfigBackupSettings extends LitElement { class HaConfigBackupSettings extends LitElement {
@property({ attribute: false }) public hass!: HomeAssistant; @property({ attribute: false }) public hass!: HomeAssistant;
@property({ attribute: false }) public cloudStatus!: CloudStatus; @property({ attribute: false }) public cloudStatus?: CloudStatus;
@property({ type: Boolean }) public narrow = false; @property({ type: Boolean }) public narrow = false;
@ -244,7 +244,7 @@ class HaConfigBackupSettings extends LitElement {
` `
: nothing} : nothing}
</div> </div>
${!this.cloudStatus.logged_in ${!this.cloudStatus?.logged_in
? html`<ha-card class="cloud-info"> ? html`<ha-card class="cloud-info">
<div class="cloud-header"> <div class="cloud-header">
<img <img