/* eslint-disable react/no-multi-comp */ import React, {useState, useEffect} from 'react'; import ReactDOM from "react-dom" import ReactJson from "react-json-view-ssr"; import { green, yellow, red, grey} from "./AngularWorkflow.jsx"; import { CodeHandler, Img, OuterLink, } from "../views/Docs.jsx"; import { useNavigate, Link, useParams } from "react-router-dom"; import { validateJson, collapseField, GetIconInfo } from "./Workflows.jsx"; import EditWorkflow from "../components/EditWorkflow.jsx" import { toast } from "react-toastify" import { makeStyles } from '@mui/material/styles'; import { useInterval } from "react-powerhooks"; import { isMobile } from "react-device-detect"; import Markdown from "react-markdown"; import theme from '../theme.jsx'; import rehypeRaw from "rehype-raw"; import RecentWorkflow from "../components/RecentWorkflow.jsx"; import { Tooltip, Select, IconButton, CircularProgress, TextField, Button, ButtonGroup, Paper, Typography, Divider, Dialog, DialogTitle, DialogContent, MenuItem, } from '@mui/material'; import { Preview as PreviewIcon, ContentCopy as ContentCopyIcon, ArrowBack as ArrowBackIcon, ArrowForward as ArrowForwardIcon, Lock as LockIcon, LockOpen as LockOpenIcon, OpenInNew as OpenInNewIcon, Edit as EditIcon, } from '@mui/icons-material'; const hrefStyle = { color: "white", textDecoration: "none" } const RunWorkflow = (defaultprops) => { const { globalUrl, userdata, isLoaded, isLoggedIn, setIsLoggedIn, setCookie, register, serverside } = defaultprops; let navigate = useNavigate(); const [_, setUpdate] = useState(""); // Used to force rendring, don't remove const [explorerUi, setExplorerUi] = useState(false) const [message, setMessage] = useState(""); const [workflow, setWorkflow] = React.useState({}); const [executionRequest, setExecutionRequest] = React.useState({}); const [executionArgument, setExecutionArgument] = useState(""); const [executionLoading, setExecutionLoading] = useState(false); const [executionData, setExecutionData] = React.useState({}); const [executionRunning, setExecutionRunning] = useState(false); const [workflowQuestion, setWorkflowQuestion] = useState(""); const [selectedOrganization, setSelectedOrganization] = React.useState(undefined); const [apps, setApps] = React.useState([]); const [buttonClicked, setButtonClicked] = React.useState(""); const [foundSourcenode, setFoundSourcenode] = React.useState(undefined); const [editWorkflowModalOpen, setEditWorkflowModalOpen] = React.useState(false) const [sharingOpen, setSharingOpen] = React.useState(false) const [realtimeMarkdown, setRealtimeMarkdown] = React.useState("") const [forms, setForms] = React.useState([]) const [boxWidth, setBoxWidth] = React.useState(500) const [inputQuestions, setInputQuestions] = React.useState([]) const IframeWrapper = (props) => { var propsCopy = JSON.parse(JSON.stringify(props)) propsCopy.width = 400 propsCopy.height = 225 return