import { h, Component } from 'preact'; import EventTrigger from './event'; import StateTrigger from './state'; import NumericStateTrigger from './numeric_state'; const TYPES = { event: EventTrigger, state: StateTrigger, homeassistant: null, mqtt: null, numeric_state: NumericStateTrigger, sun: null, template: null, time: null, zone: null, }; const OPTIONS = Object.keys(TYPES).sort(); export default class TriggerRow extends Component { constructor() { super(); this.typeChanged = this.typeChanged.bind(this); this.onDelete = this.onDelete.bind(this); } typeChanged(ev) { const type = ev.target.selectedItem.innerHTML; if (type !== this.props.trigger.platform) { this.props.onChange(this.props.index, { platform: type, }); } } onDelete() { // eslint-disable-next-line if (confirm('Sure you want to delete?')) { this.props.onChange(this.props.index, null); } } render({ index, trigger, onChange }) { const Comp = TYPES[trigger.platform]; const selected = OPTIONS.indexOf(trigger.platform); let content; if (Comp) { content = (
{JSON.stringify(trigger, null, 2)}