From e5449a6f3c867e38f2053770c76f2b12b8330dfa Mon Sep 17 00:00:00 2001 From: frikky Date: Fri, 18 Mar 2022 19:08:23 +0100 Subject: [PATCH] Added better nested field visuals for JSON when autocompleting --- frontend/src/components/ParsedAction.jsx | 64 +++++++++++++++++++----- 1 file changed, 51 insertions(+), 13 deletions(-) diff --git a/frontend/src/components/ParsedAction.jsx b/frontend/src/components/ParsedAction.jsx index ae7eda2a..95aea682 100644 --- a/frontend/src/components/ParsedAction.jsx +++ b/frontend/src/components/ParsedAction.jsx @@ -405,10 +405,7 @@ const ParsedAction = (props) => { continue; } - console.log("EXEC: ", workflowExecutions[key].execution_argument) - const valid = validateJson(workflowExecutions[key].execution_argument) - console.log("VALID: ", valid) if (valid.valid) { actionlist.push({ type: "Execution Argument", @@ -1846,6 +1843,7 @@ const ParsedAction = (props) => { parsedPaths = GetParsedPaths(innerdata.example, ""); } + const coverColor = "#82ccc3" return parsedPaths.length > 0 ? ( { handleItemClick([innerdata]); }} > + { + //console.log("HOVER: ", pathdata); + }} + onClick={() => { + handleItemClick([innerdata]); + }} + > + + {innerdata.name} + + {parsedPaths.map((pathdata, index) => { // FIXME: Should be recursive in here + // const icon = pathdata.type === "value" ? ( - + ) : pathdata.type === "list" ? ( - + ) : ( - + ); + // + + console.log("Path: ", pathdata) + const indentation_count = (pathdata.name.match(/\./g) || []).length+1 + const baseIndent =
+ //const boxPadding = pathdata.type === "object" ? "10px 0px 0px 0px" : 0 + const boxPadding = 0 + const namesplit = pathdata.name.split(".") + const newname = namesplit[namesplit.length-1] + console.log(newname) return ( { color: "white", minWidth: 250, maxWidth: 250, + padding: boxPadding, }} value={pathdata} onMouseOver={() => { - console.log("HOVER: ", pathdata); + //console.log("HOVER: ", pathdata); }} onClick={() => { handleItemClick([innerdata, pathdata]); @@ -1907,8 +1940,13 @@ const ParsedAction = (props) => { title={`Ex. value: ${pathdata.value}`} placement="left" > -
- {icon} {pathdata.name} +
+ {Array(indentation_count).fill().map((subdata, subindex) => { + return ( + baseIndent + ) + })} + {icon} {newname}
@@ -2192,10 +2230,10 @@ const ParsedAction = (props) => { ) : null} {showDropdown && - showDropdownNumber === count && - data.variant === "STATIC_VALUE" && - jsonList.length === 0 ? ( - + showDropdownNumber === count && + data.variant === "STATIC_VALUE" && + jsonList.length === 0 ? ( + ) : null}
);