mirror of
https://github.com/home-assistant/frontend.git
synced 2025-07-23 17:26:42 +00:00
add confirmation option to actions (#4006)
* add confirmation option to actions * address comments
This commit is contained in:
parent
4ea483e3de
commit
141c3f1ea4
@ -37,11 +37,11 @@ export interface LovelaceCardConfig {
|
|||||||
[key: string]: any;
|
[key: string]: any;
|
||||||
}
|
}
|
||||||
|
|
||||||
export interface ToggleActionConfig {
|
export interface ToggleActionConfig extends BaseActionConfig {
|
||||||
action: "toggle";
|
action: "toggle";
|
||||||
}
|
}
|
||||||
|
|
||||||
export interface CallServiceActionConfig {
|
export interface CallServiceActionConfig extends BaseActionConfig {
|
||||||
action: "call-service";
|
action: "call-service";
|
||||||
service: string;
|
service: string;
|
||||||
service_data?: {
|
service_data?: {
|
||||||
@ -50,24 +50,37 @@ export interface CallServiceActionConfig {
|
|||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
export interface NavigateActionConfig {
|
export interface NavigateActionConfig extends BaseActionConfig {
|
||||||
action: "navigate";
|
action: "navigate";
|
||||||
navigation_path: string;
|
navigation_path: string;
|
||||||
}
|
}
|
||||||
|
|
||||||
export interface UrlActionConfig {
|
export interface UrlActionConfig extends BaseActionConfig {
|
||||||
action: "url";
|
action: "url";
|
||||||
url_path: string;
|
url_path: string;
|
||||||
}
|
}
|
||||||
|
|
||||||
export interface MoreInfoActionConfig {
|
export interface MoreInfoActionConfig extends BaseActionConfig {
|
||||||
action: "more-info";
|
action: "more-info";
|
||||||
}
|
}
|
||||||
|
|
||||||
export interface NoActionConfig {
|
export interface NoActionConfig extends BaseActionConfig {
|
||||||
action: "none";
|
action: "none";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export interface BaseActionConfig {
|
||||||
|
confirmation?: ConfirmationRestrictionConfig;
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface ConfirmationRestrictionConfig {
|
||||||
|
text?: string;
|
||||||
|
exemptions?: RestrictionConfig[];
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface RestrictionConfig {
|
||||||
|
user: string;
|
||||||
|
}
|
||||||
|
|
||||||
export type ActionConfig =
|
export type ActionConfig =
|
||||||
| ToggleActionConfig
|
| ToggleActionConfig
|
||||||
| CallServiceActionConfig
|
| CallServiceActionConfig
|
||||||
|
@ -34,6 +34,23 @@ export const handleClick = (
|
|||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (
|
||||||
|
actionConfig.confirmation &&
|
||||||
|
(!actionConfig.confirmation.exemptions ||
|
||||||
|
!actionConfig.confirmation.exemptions.some(
|
||||||
|
(e) => e.user === hass!.user!.id
|
||||||
|
))
|
||||||
|
) {
|
||||||
|
if (
|
||||||
|
!confirm(
|
||||||
|
actionConfig.confirmation.text ||
|
||||||
|
`Are you sure you want to ${actionConfig.action}?`
|
||||||
|
)
|
||||||
|
) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
switch (actionConfig.action) {
|
switch (actionConfig.action) {
|
||||||
case "more-info":
|
case "more-info":
|
||||||
if (config.entity || config.camera_image) {
|
if (config.entity || config.camera_image) {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user