import React, { useEffect, useContext } from "react"; import theme from '../theme'; import { isMobile } from "react-device-detect" import ChipInput from "material-ui-chip-input"; import { Badge, Avatar, Grid, InputLabel, Select, ListSubheader, Paper, Tooltip, Divider, Button, TextField, IconButton, Menu, MenuItem, FormControlLabel, Chip, Switch, Typography, Zoom, CircularProgress, Dialog, DialogTitle, DialogActions, DialogContent, OutlinedInput, Checkbox, ListItemText, Radio, RadioGroup, FormControl, FormLabel, } from "@material-ui/core"; import { ExpandLess as ExpandLessIcon, ExpandMore as ExpandMoreIcon, Publish as PublishIcon, } from "@material-ui/icons"; const EditWorkflow = (props) => { const { workflow, setWorkflow, modalOpen, setModalOpen, showUpload, usecases, } = props const [submitLoading, setSubmitLoading] = React.useState(false); const [selectedUsecases, setSelectedUsecases] = React.useState([]); const [showMoreClicked, setShowMoreClicked] = React.useState(false); const [innerWorkflow, setInnerWorkflow] = React.useState(workflow) const [_, setUpdate] = React.useState(""); // Used for rendering, don't remove const [newWorkflowTags, setNewWorkflowTags] = React.useState(workflow.tags !== undefined && workflow.tags !== null ? JSON.parse(JSON.stringify(workflow.tags)) : []) if (workflow === undefined || workflow.id === undefined || setWorkflow === undefined || modalOpen !== true) { return null } var upload = ""; var total_count = 0 return ( { setModalOpen(false); }} PaperProps={{ style: { backgroundColor: theme.palette.surfaceColor, color: "white", minWidth: isMobile ? "90%" : "800px", maxWidth: isMobile ? "90%" : "800px", }, }} >
{workflow.id !== undefined ? "Editing" : "New"} workflow {showUpload === true ?
: null}
{ innerWorkflow.name = event.target.value }} InputProps={{ style: { color: "white", }, }} color="primary" placeholder="Name" required margin="dense" defaultValue={innerWorkflow.name} label="Name" autoFocus fullWidth /> { innerWorkflow.description = event.target.value setInnerWorkflow(innerWorkflow) }} InputProps={{ style: { color: "white", }, }} color="primary" defaultValue={innerWorkflow.description} placeholder="Description" multiline label="Description" margin="dense" fullWidth />
{ newWorkflowTags.push(chip); setNewWorkflowTags(newWorkflowTags); }} onDelete={(chip, index) => { newWorkflowTags.splice(index, 1); setNewWorkflowTags(newWorkflowTags); }} /> {usecases !== null && usecases !== undefined && usecases.length > 0 ? Usecases : null}
{showMoreClicked === true ? Status { console.log("Data: ", e.target.value) innerWorkflow.workflow_type = e.target.value setInnerWorkflow(innerWorkflow) }} > } label="Test" /> } label="Production" />
Type { console.log("Data: ", e.target.value) innerWorkflow.workflow_type = e.target.value setInnerWorkflow(innerWorkflow) }} > } label="Trigger" /> } label="Subflow" /> } label="Standalone" /> { innerWorkflow.blogpost = event.target.value setInnerWorkflow(innerWorkflow) }} InputProps={{ style: { color: "white", }, }} color="primary" defaultValue={innerWorkflow.blogpost} placeholder="A blogpost or other reference for how this work workflow was built, and what it's for." rows="1" label="blogpost" margin="dense" fullWidth /> { innerWorkflow.video = event.target.value setInnerWorkflow(innerWorkflow) }} InputProps={{ style: { color: "white", }, }} color="primary" defaultValue={innerWorkflow.video} placeholder="A youtube or loom link to the video" rows="1" label="Video" margin="dense" fullWidth /> { innerWorkflow.default_return_value = event.target.value setInnerWorkflow(innerWorkflow) }} InputProps={{ style: { color: "white", }, }} color="primary" defaultValue={innerWorkflow.default_return_value} placeholder="Default return value (used for Subflows if the subflow fails)" rows="3" multiline label="Default return value" margin="dense" fullWidth /> : null} { setShowMoreClicked(!showMoreClicked); }} > {showMoreClicked ? : }
) } export default EditWorkflow;