mirror of
https://github.com/home-assistant/frontend.git
synced 2025-07-24 09:46:36 +00:00
Use state as mode for alarm mode tile feature (#16045
* Use state as mode for alarm mode tile feature * reorder modes
This commit is contained in:
parent
890be2c177
commit
6068d5e5cd
@ -53,53 +53,46 @@ export const callAlarmAction = (
|
||||
};
|
||||
|
||||
export type AlarmMode =
|
||||
| "away"
|
||||
| "home"
|
||||
| "night"
|
||||
| "vacation"
|
||||
| "custom_bypass"
|
||||
| "armed_home"
|
||||
| "armed_away"
|
||||
| "armed_night"
|
||||
| "armed_vacation"
|
||||
| "armed_custom_bypass"
|
||||
| "disarmed";
|
||||
|
||||
type AlarmConfig = {
|
||||
service: string;
|
||||
feature?: AlarmControlPanelEntityFeature;
|
||||
state: string;
|
||||
path: string;
|
||||
};
|
||||
export const ALARM_MODES: Record<AlarmMode, AlarmConfig> = {
|
||||
away: {
|
||||
feature: AlarmControlPanelEntityFeature.ARM_AWAY,
|
||||
service: "alarm_arm_away",
|
||||
state: "armed_away",
|
||||
path: mdiLock,
|
||||
},
|
||||
home: {
|
||||
armed_home: {
|
||||
feature: AlarmControlPanelEntityFeature.ARM_HOME,
|
||||
service: "alarm_arm_home",
|
||||
state: "armed_home",
|
||||
path: mdiHome,
|
||||
},
|
||||
custom_bypass: {
|
||||
feature: AlarmControlPanelEntityFeature.ARM_CUSTOM_BYPASS,
|
||||
service: "alarm_arm_custom_bypass",
|
||||
state: "armed_custom_bypass",
|
||||
path: mdiShield,
|
||||
armed_away: {
|
||||
feature: AlarmControlPanelEntityFeature.ARM_AWAY,
|
||||
service: "alarm_arm_away",
|
||||
path: mdiLock,
|
||||
},
|
||||
night: {
|
||||
armed_night: {
|
||||
feature: AlarmControlPanelEntityFeature.ARM_NIGHT,
|
||||
service: "alarm_arm_night",
|
||||
state: "armed_night",
|
||||
path: mdiMoonWaningCrescent,
|
||||
},
|
||||
vacation: {
|
||||
armed_vacation: {
|
||||
feature: AlarmControlPanelEntityFeature.ARM_VACATION,
|
||||
service: "alarm_arm_vacation",
|
||||
state: "armed_vacation",
|
||||
path: mdiAirplane,
|
||||
},
|
||||
armed_custom_bypass: {
|
||||
feature: AlarmControlPanelEntityFeature.ARM_CUSTOM_BYPASS,
|
||||
service: "alarm_arm_custom_bypass",
|
||||
path: mdiShield,
|
||||
},
|
||||
disarmed: {
|
||||
service: "alarm_disarm",
|
||||
state: "disarmed",
|
||||
path: mdiShieldOff,
|
||||
},
|
||||
};
|
||||
|
@ -40,9 +40,7 @@ export class HaMoreInfoAlarmControlPanelModes extends LitElement {
|
||||
}
|
||||
|
||||
private _getCurrentMode(stateObj: AlarmControlPanelEntity) {
|
||||
return this._modes(stateObj).find(
|
||||
(mode) => ALARM_MODES[mode].state === stateObj.state
|
||||
);
|
||||
return this._modes(stateObj).find((mode) => mode === stateObj.state);
|
||||
}
|
||||
|
||||
private async _setMode(mode: AlarmMode) {
|
||||
@ -86,7 +84,7 @@ export class HaMoreInfoAlarmControlPanelModes extends LitElement {
|
||||
private async _valueChanged(ev: CustomEvent) {
|
||||
const mode = (ev.detail as any).value as AlarmMode;
|
||||
|
||||
if (ALARM_MODES[mode].state === this.stateObj!.state) return;
|
||||
if (mode === this.stateObj!.state) return;
|
||||
|
||||
const oldMode = this._getCurrentMode(this.stateObj!);
|
||||
this._currentMode = mode;
|
||||
|
@ -95,14 +95,14 @@ class HuiAlarmModeTileFeature
|
||||
|
||||
private _getCurrentMode(stateObj: AlarmControlPanelEntity) {
|
||||
return this._modes(stateObj, this._config?.modes).find(
|
||||
(mode) => ALARM_MODES[mode].state === stateObj.state
|
||||
(mode) => mode === stateObj.state
|
||||
);
|
||||
}
|
||||
|
||||
private async _valueChanged(ev: CustomEvent) {
|
||||
const mode = (ev.detail as any).value as AlarmMode;
|
||||
|
||||
if (ALARM_MODES[mode].state === this.stateObj!.state) return;
|
||||
if (mode === this.stateObj!.state) return;
|
||||
|
||||
const oldMode = this._getCurrentMode(this.stateObj!);
|
||||
this._currentMode = mode;
|
||||
|
@ -931,11 +931,11 @@
|
||||
"alarm_control_panel": {
|
||||
"modes_label": "Modes",
|
||||
"modes": {
|
||||
"away": "Away",
|
||||
"home": "Home",
|
||||
"night": "Night",
|
||||
"vacation": "Vacation",
|
||||
"custom_bypass": "Custom",
|
||||
"armed_away": "Away",
|
||||
"armed_home": "Home",
|
||||
"armed_night": "Night",
|
||||
"armed_vacation": "Vacation",
|
||||
"armed_custom_bypass": "Custom",
|
||||
"disarmed": "Disarmed"
|
||||
},
|
||||
"disarm_title": "Disarm",
|
||||
@ -4467,11 +4467,11 @@
|
||||
"label": "Alarm modes",
|
||||
"modes": "[%key:ui::dialogs::more_info_control::alarm_control_panel::modes_label%]",
|
||||
"modes_list": {
|
||||
"away": "[%key:ui::dialogs::more_info_control::alarm_control_panel::modes::away%]",
|
||||
"home": "[%key:ui::dialogs::more_info_control::alarm_control_panel::modes::home%]",
|
||||
"night": "[%key:ui::dialogs::more_info_control::alarm_control_panel::modes::night%]",
|
||||
"vacation": "[%key:ui::dialogs::more_info_control::alarm_control_panel::modes::vacation%]",
|
||||
"custom_bypass": "[%key:ui::dialogs::more_info_control::alarm_control_panel::modes::custom_bypass%]",
|
||||
"armed_away": "[%key:ui::dialogs::more_info_control::alarm_control_panel::modes::armed_away%]",
|
||||
"armed_home": "[%key:ui::dialogs::more_info_control::alarm_control_panel::modes::armed_home%]",
|
||||
"armed_night": "[%key:ui::dialogs::more_info_control::alarm_control_panel::modes::armed_night%]",
|
||||
"armed_vacation": "[%key:ui::dialogs::more_info_control::alarm_control_panel::modes::armed_vacation%]",
|
||||
"armed_custom_bypass": "[%key:ui::dialogs::more_info_control::alarm_control_panel::modes::armed_custom_bypass%]",
|
||||
"disarmed": "[%key:ui::dialogs::more_info_control::alarm_control_panel::modes::disarmed%]"
|
||||
}
|
||||
},
|
||||
|
Loading…
x
Reference in New Issue
Block a user