From 1e6a5c1309d84d976dc776eed55ac1441f2ca65e Mon Sep 17 00:00:00 2001 From: Ferry Cools Date: Sat, 30 Aug 2025 10:37:42 +0200 Subject: [PATCH] Add confirmation to Switch chip tap action This prevents accidental actions by requiring user confirmation before turning off switches. --- src/chips/SwitchChip.ts | 26 +++++++++++++++----------- 1 file changed, 15 insertions(+), 11 deletions(-) diff --git a/src/chips/SwitchChip.ts b/src/chips/SwitchChip.ts index 7e341d18..09acb08d 100644 --- a/src/chips/SwitchChip.ts +++ b/src/chips/SwitchChip.ts @@ -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;