import React, { useContext, useState, useEffect } from "react"; import {useNavigate} from "react-router-dom"; import StoreContext from "../../../ctx/StoreContext.jsx"; import JobContext from "../../../ctx/JobContext.jsx"; import Dialog from "@mui/material/Dialog"; import Toolbar from "@mui/material/Toolbar"; import DialogTitle from "@mui/material/DialogTitle"; import ClickAwayListener from "@mui/material/ClickAwayListener"; import SpeedDial from "@mui/material/SpeedDial"; import SpeedDialAction from "@mui/material/SpeedDialAction"; import SpeedDialIcon from "@mui/material/SpeedDialIcon"; import PageviewIcon from "@mui/icons-material/Pageview"; import ViewColumnIcon from "@mui/icons-material/ViewColumn"; import ViewCarouselIcon from "@mui/icons-material/ViewCarousel"; import IndividualSelector from "./IndividualSelector.jsx"; import IndividualConfirm from "./IndividualConfirm.jsx"; import GroupSelector from "./GroupSelector.jsx"; import GroupConfirm from "./GroupConfirm.jsx"; import PipelineSelector from "./PipelineSelector.jsx"; import PipelineTrackSelector from "./PipelineTrackSelector.jsx"; import PipelineConfirm from "./PipelineConfirm.jsx"; export default function JobBuilder() { const navigate = useNavigate(); const { state: store } = useContext(StoreContext); const { jobFactory } = useContext(JobContext); const [quickOpen, setQuickOpen] = useState(false); const [jobDialogOpen, setJobDialogOpen] = useState(false); const quickOpenClick = (e) => { e.preventDefault(); e.stopPropagation(); if (!store.simplifiedControls) return setQuickOpen(!quickOpen); setBuilderPage("individualSelect"); setJobDialogOpen(true); }; const quickOpenClose = () => setQuickOpen(false); const handleClickOpen = (page)=> () =>{ setBuilderPage(page); setJobDialogOpen(true); } const [builderPage, setBuilderPage] = useState(); const [cache, setCache] = useState({}); const handleClose = (confirmed) => () => { setJobDialogOpen(false); if (!confirmed) return; const jobId = jobFactory(cache); if(store.focusJob) navigate(`/qualiteer/jobs#${jobId}`); }; // Pull info from url if possible? const actions = [ { name: "Suite", icon: , page: "groupSelect" }, { name: "Compound", icon: , page: "pipelineSelect" }, { name: "Manual", icon: , page: "individualSelect" }, ]; const changePage = (page) => () => setBuilderPage(page); const pages = { individualSelect: , individualConfirm: , groupSelect: , groupConfirm: , pipelineSelect: , pipelineTrackSelect: , pipelineConfirm: } return ( New Job {pages[builderPage]} } onClick={quickOpenClick} open={quickOpen} > {actions.map((action) => ( ))} ); }