mirror of
https://github.com/home-assistant/frontend.git
synced 2025-07-23 09:16:38 +00:00
Improve trigger condition check on paste (#25241)
This commit is contained in:
parent
50e39de974
commit
2e4ce71d06
@ -492,6 +492,25 @@ export const getAutomationEditorInitData = () => {
|
|||||||
return data;
|
return data;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
export const isTrigger = (config: unknown): boolean => {
|
||||||
|
if (!config || typeof config !== "object") {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
const trigger = config as Record<string, unknown>;
|
||||||
|
return (
|
||||||
|
("trigger" in trigger && typeof trigger.trigger === "string") ||
|
||||||
|
("platform" in trigger && typeof trigger.platform === "string")
|
||||||
|
);
|
||||||
|
};
|
||||||
|
|
||||||
|
export const isCondition = (config: unknown): boolean => {
|
||||||
|
if (!config || typeof config !== "object") {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
const condition = config as Record<string, unknown>;
|
||||||
|
return "condition" in condition && typeof condition.condition === "string";
|
||||||
|
};
|
||||||
|
|
||||||
export const subscribeTrigger = (
|
export const subscribeTrigger = (
|
||||||
hass: HomeAssistant,
|
hass: HomeAssistant,
|
||||||
onChange: (result: {
|
onChange: (result: {
|
||||||
|
@ -26,7 +26,11 @@ import type {
|
|||||||
ManualAutomationConfig,
|
ManualAutomationConfig,
|
||||||
Trigger,
|
Trigger,
|
||||||
} from "../../../data/automation";
|
} from "../../../data/automation";
|
||||||
import { normalizeAutomationConfig } from "../../../data/automation";
|
import {
|
||||||
|
isCondition,
|
||||||
|
isTrigger,
|
||||||
|
normalizeAutomationConfig,
|
||||||
|
} from "../../../data/automation";
|
||||||
import { getActionType, type Action } from "../../../data/script";
|
import { getActionType, type Action } from "../../../data/script";
|
||||||
import { haStyle } from "../../../resources/styles";
|
import { haStyle } from "../../../resources/styles";
|
||||||
import type { HomeAssistant } from "../../../types";
|
import type { HomeAssistant } from "../../../types";
|
||||||
@ -332,11 +336,11 @@ export class HaManualAutomationEditor extends LitElement {
|
|||||||
};
|
};
|
||||||
let found = false;
|
let found = false;
|
||||||
config.forEach((cfg: any) => {
|
config.forEach((cfg: any) => {
|
||||||
if ("trigger" in cfg) {
|
if (isTrigger(cfg)) {
|
||||||
found = true;
|
found = true;
|
||||||
(newConfig.triggers as Trigger[]).push(cfg);
|
(newConfig.triggers as Trigger[]).push(cfg);
|
||||||
}
|
}
|
||||||
if ("condition" in cfg) {
|
if (isCondition(cfg)) {
|
||||||
found = true;
|
found = true;
|
||||||
(newConfig.conditions as Condition[]).push(cfg);
|
(newConfig.conditions as Condition[]).push(cfg);
|
||||||
}
|
}
|
||||||
@ -351,10 +355,10 @@ export class HaManualAutomationEditor extends LitElement {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if ("trigger" in config) {
|
if (isTrigger(config)) {
|
||||||
config = { triggers: [config] };
|
config = { triggers: [config] };
|
||||||
}
|
}
|
||||||
if ("condition" in config) {
|
if (isCondition(config)) {
|
||||||
config = { conditions: [config] };
|
config = { conditions: [config] };
|
||||||
}
|
}
|
||||||
if (getActionType(config) !== "unknown") {
|
if (getActionType(config) !== "unknown") {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user