Add confirmation to Switch chip tap action

This prevents accidental actions by requiring user confirmation
before turning off switches.
This commit is contained in:
Ferry Cools
2025-08-30 10:37:42 +02:00
parent 926f39dc4b
commit 1e6a5c1309

View File

@@ -4,6 +4,7 @@ import { Registry } from '../Registry';
import { TemplateChipConfig } from '../types/lovelace-mushroom/utils/lovelace/chip/types';
import AbstractChip from './AbstractChip';
import RegistryFilter from '../utilities/RegistryFilter';
import { localize } from '../utilities/localize';
/**
* Switch Chip class.
@@ -11,6 +12,17 @@ import RegistryFilter from '../utilities/RegistryFilter';
* Used to create a chip configuration to indicate how many switches are on and to switch them all off.
*/
class SwitchChip extends AbstractChip {
/**
* Class Constructor.
*
* @param {TemplateChipConfig} [customConfiguration] Custom chip configuration.
*/
constructor(customConfiguration?: TemplateChipConfig) {
super();
this.configuration = { ...this.configuration, ...SwitchChip.getDefaultConfig(), ...customConfiguration };
}
/** Returns the default configuration object for the chip. */
static getDefaultConfig(): TemplateChipConfig {
return {
@@ -20,6 +32,9 @@ class SwitchChip extends AbstractChip {
content: Registry.getCountTemplate('switch', 'eq', 'on'),
tap_action: {
action: 'perform-action',
confirmation: {
text: localize('switch.chip_confirmation'),
},
perform_action: 'switch.turn_off',
target: {
entity_id: new RegistryFilter(Registry.entities)
@@ -33,17 +48,6 @@ class SwitchChip extends AbstractChip {
},
};
}
/**
* Class Constructor.
*
* @param {TemplateChipConfig} [customConfiguration] Custom chip configuration.
*/
constructor(customConfiguration?: TemplateChipConfig) {
super();
this.configuration = { ...this.configuration, ...SwitchChip.getDefaultConfig(), ...customConfiguration };
}
}
export default SwitchChip;