Fire custom LL event (#4361)

This commit is contained in:
Ian Richardson 2019-12-18 00:40:26 -06:00 committed by Paulus Schoutsen
parent c2d551bb7c
commit dd17a153d2
2 changed files with 16 additions and 3 deletions

View File

@ -69,6 +69,10 @@ export interface NoActionConfig extends BaseActionConfig {
action: "none";
}
export interface CustomActionConfig extends BaseActionConfig {
action: "fire-dom-event";
}
export interface BaseActionConfig {
confirmation?: ConfirmationRestrictionConfig;
}
@ -88,7 +92,8 @@ export type ActionConfig =
| NavigateActionConfig
| UrlActionConfig
| MoreInfoActionConfig
| NoActionConfig;
| NoActionConfig
| CustomActionConfig;
export const fetchConfig = (
conn: Connection,

View File

@ -5,6 +5,12 @@ import { toggleEntity } from "./entity/toggle-entity";
import { ActionConfig } from "../../../data/lovelace";
import { forwardHaptic } from "../../../data/haptics";
declare global {
interface HASSDomEvents {
"ll-custom": ActionConfig;
}
}
export const handleAction = (
node: HTMLElement,
hass: HomeAssistant,
@ -76,7 +82,7 @@ export const handleAction = (
forwardHaptic("light");
}
break;
case "call-service": {
case "call-service":
if (!actionConfig.service) {
forwardHaptic("failure");
return;
@ -84,6 +90,8 @@ export const handleAction = (
const [domain, service] = actionConfig.service.split(".", 2);
hass.callService(domain, service, actionConfig.service_data);
forwardHaptic("light");
}
break;
case "fire-dom-event":
fireEvent(node, "ll-custom", actionConfig);
}
};