// imports import React, { useState } from 'react'; // locals import Input from '../Input'; import Button from '../Button'; import Overlay from '../Overlay'; import ApiSignal from '../../signals/Api'; import Signal, { useSignal } from '../../signal'; import { current as TeamSignal } from '../../signals/Teams'; // open export const branch = new Signal.State(null); export const remove = new Signal.State(null); /** * component branch modal * * @param props */ const ComponentBranchModal = (props = {}) => { // signals const [api] = useSignal(ApiSignal); const [sBranch, setBranch] = useSignal(branch); // state const [saving, setSaving] = useState(false); // on save const onSave = async () => { // save branch if (saving) return; // set saving setSaving(true); // try/catch try { // save branch const result = await api.WorkflowBranch[sBranch?.id ? 'update' : 'create']({ ...sBranch, team : TeamSignal.value?.id, workflow : props.workflow?.id, }); // set branch value setBranch(result.branch); // on change if (props.onChange) props.onChange(sBranch); } catch (e) { // log console.error(e); } finally { // set saving setSaving(false); } }; // return jsx return ( setBranch(null)} subtitle={api.translate('branch:dialog.subtitle', 'Create a new branch for your workflow')} > setBranch({ ...sBranch, name : e.target.value })} placeholder={api.translate('branch:form.name.placeholder', 'Branch Name')} />
) }; /** * export component branch modal */ export default ComponentBranchModal;