const valueInput = id => ({ initial: "empty", states: { empty: { on: { [`${id}.LOCK`]: { target: "locked", actions: send('STEP') } } }, valid: {}, locked: { on: { // '': { actions: 'STEP' } } } } }) const fsCalcMachine = Machine({ id: "fsCalc", initial: "calculating", context: { solvingFor: "unknown" }, states: { fullyDefined: {}, calculating: { on: { DONE: { target:'fullyDefined', cond: (_, e) => e.value === true } }, type: 'parallel', states: { result: { initial: 'zero', states: { zero: { on: { STEP: 'one' }, }, one: { on: { STEP: 'two' }, }, two: { type: 'final', on: { STEP: { actions: send({ type: 'DONE', value: true }) } }, } } }, feedrateInput: valueInput('feedrateInput'), chiploadInput: valueInput('chiploadInput'), numFlutesInput: valueInput('numFlutesInput'), spindleSpeedInput: valueInput('spindleSpeedInput'), } } } });