From 4e69e06e1ab799170df03912eb618bbdfc627bd2 Mon Sep 17 00:00:00 2001 From: corpulent Date: Sat, 30 Jul 2022 13:22:52 +0300 Subject: [PATCH] feat: added version select --- .../frontend/src/components/Project/index.tsx | 36 ++++++++++++++++--- .../frontend/src/components/useJsPlumb.ts | 19 ++++++++++ services/frontend/src/utils/generators.ts | 8 ++--- 3 files changed, 54 insertions(+), 9 deletions(-) diff --git a/services/frontend/src/components/Project/index.tsx b/services/frontend/src/components/Project/index.tsx index 6cf043d..907ee6d 100644 --- a/services/frontend/src/components/Project/index.tsx +++ b/services/frontend/src/components/Project/index.tsx @@ -67,6 +67,7 @@ export default function Project() { null ); const [language, setLanguage] = useState("yaml"); + const [version, setVersion] = useState("3"); const [copyText, setCopyText] = useState("Copy"); const [nodes, setNodes] = useState({}); const [connections, setConnections] = useState<[[string, string]] | []>([]); @@ -187,10 +188,8 @@ export default function Project() { const debouncedOnGraphUpdate = useMemo( () => - debounce((graphData) => { - graphData.networks = stateNetworksRef.current; - const flatData = generatePayload(graphData); - generateHttp(JSON.stringify(flatData)) + debounce((payload) => { + generateHttp(JSON.stringify(payload)) .then(checkHttpStatus) .then((data) => { if (data["code"].length) { @@ -213,7 +212,11 @@ export default function Project() { }; const onGraphUpdate = (graphData: any) => { - debouncedOnGraphUpdate(graphData); + const data = { ...graphData }; + data.version = version; + data.networks = stateNetworksRef.current; + const payload = generatePayload(data); + debouncedOnGraphUpdate(payload); }; const onCanvasUpdate = (updatedCanvasPosition: any) => { @@ -318,6 +321,10 @@ export default function Project() { eventBus.dispatch("NODE_DELETED", { message: { node: node } }); }; + const versionChange = (e: any) => { + setVersion(e.target.value); + }; + useEffect(() => { if (!generatedCode) { return; @@ -332,6 +339,14 @@ export default function Project() { } }, [language, generatedCode]); + useEffect(() => { + eventBus.dispatch("GENERATE", { + message: { + id: "" + } + }); + }, [version]); + if (!isFetching) { if (!error) { return ( @@ -539,6 +554,17 @@ export default function Project() {
+ +