import * as React from "react";
import { Step as IStep, Sequence } from "./interfaces";
import { execSequence } from "../devices/actions";
import {
editCurrentSequence,
saveSequence,
deleteSequence,
nullSequence
} from "./actions";
import { stepTiles, StepTile } from "./step_tiles";
import { Everything } from "../interfaces";
import { ColorPicker } from "./color_picker";
import { t } from "i18next";
let Oops: StepTile = (_) => { return
Whoops! Not a valid message_type
; };
let StepList = ({sequence, sequences, dispatch}:
{ sequence: Sequence, sequences: Sequence[], dispatch: Function }) => {
return (
{sequence.steps.map((step: IStep, inx: number) => {
let Step = stepTiles[step.message_type] || Oops;
return ;
})}
);
};
let handleNameUpdate = (dispatch: Function) => (event: React.SyntheticEvent) => {
let name: string = (event.target as any)["value"] || ""; // Typescript workaround.
dispatch(editCurrentSequence({ name }));
};
let save = function (dispatch: Function, sequence: Sequence) {
return (e: React.SyntheticEvent) => dispatch(saveSequence(sequence));
};
let destroy = function (dispatch: Function,
sequence: Sequence,
inx: number) {
return () => dispatch(deleteSequence(inx));
};
let performSeq = (dispatch: Function, sequence: Sequence) => (e: React.FormEvent) => {
dispatch(execSequence(sequence));
};
export function SequenceEditorWidget({sequences, dispatch}: Everything) {
let inx = sequences.current;
let sequence: Sequence = sequences.all[inx] || nullSequence();
return (
{t("Sequence Editor")}
{t(`Use this widget to edit
sequences. Coming soon: drag and drop steps,
custom step names, sequence cloning, and inheritable
step properties!`)}
{
}
{t("DRAG ACTIONS HERE")
}
);
}