diff --git a/hyperglass/ui/components/HyperglassForm.js b/hyperglass/ui/components/HyperglassForm.js index 487bcdf..adbcba5 100644 --- a/hyperglass/ui/components/HyperglassForm.js +++ b/hyperglass/ui/components/HyperglassForm.js @@ -58,6 +58,10 @@ const HyperglassForm = React.forwardRef( const [fqdnTarget, setFqdnTarget] = useState(""); const [displayTarget, setDisplayTarget] = useState(""); const onSubmit = values => { + if (values.query_vrf === undefined) { + values.query_vrf = "default"; + } + console.log(values); setFormData(values); setSubmitting(true); }; @@ -136,7 +140,7 @@ const HyperglassForm = React.forwardRef( - {availVrfs.length > 0 && ( + {availVrfs.length > 1 && ( { + if (keywords === null || keywords === undefined) { + keywords = []; + } const patternStr = `(${keywords.join("|")})`; const pattern = new RegExp(patternStr, "gi"); const errorFmt = strReplace(message, pattern, match => ( @@ -45,7 +48,20 @@ const AccordionHeaderWrapper = styled(Flex)` const statusMap = { success: "success", warning: "warning", error: "warning", danger: "error" }; const Result = React.forwardRef( - ({ device, timeout, queryLocation, queryType, queryVrf, queryTarget, index }, ref) => { + ( + { + device, + timeout, + queryLocation, + queryType, + queryVrf, + queryTarget, + index, + resultsComplete, + setComplete + }, + ref + ) => { const config = useConfig(); const theme = useTheme(); const { colorMode } = useColorMode(); @@ -64,6 +80,14 @@ const Result = React.forwardRef( }, timeout: timeout }); + + const [isOpen, setOpen] = useState(false); + const [hasOverride, setOverride] = useState(false); + + const handleToggle = () => { + setOpen(!isOpen); + setOverride(true); + }; const cleanOutput = data && data.output @@ -91,9 +115,16 @@ const Result = React.forwardRef( const errorLevel = (error?.response?.data?.level && statusMap[error.response?.data?.level]) ?? "error"; + useEffect(() => { + !loading && resultsComplete === null && setComplete(index); + }, [loading, resultsComplete]); + + useEffect(() => { + resultsComplete === index && !hasOverride && setOpen(true); + }, [resultsComplete, index]); return ( - + v.id === queryVrf)[0]; + const matchedVrf = + config.vrfs.filter(v => v.id === queryVrf)[0] ?? + config.vrfs.filter(v => v.id === "default")[0]; + const [resultsComplete, setComplete] = useState(null); return ( <> ))}