From d9eb22c30f834755e9f39452cb40d85e92bec80e Mon Sep 17 00:00:00 2001 From: Cristhian Zanforlin Lousa Date: Tue, 26 Sep 2023 22:05:39 -0300 Subject: [PATCH] =?UTF-8?q?=F0=9F=94=A7=20fix(codeTabsComponent):=20remove?= =?UTF-8?q?=20unused=20onChange=20function=20parameter=20in=20CodeTabsComp?= =?UTF-8?q?onent=20to=20improve=20code=20readability=20and=20maintainabili?= =?UTF-8?q?ty=20=F0=9F=94=A7=20fix(dictComponent):=20change=20onChange=20b?= =?UTF-8?q?ehavior=20in=20DictComponent=20to=20set=20an=20empty=20object?= =?UTF-8?q?=20when=20disabled=20instead=20of=20an=20empty=20array=20?= =?UTF-8?q?=F0=9F=94=A7=20fix(ApiModal):=20add=20a=20check=20to=20convert?= =?UTF-8?q?=20changes=20to=20an=20object=20only=20if=20it=20is=20an=20arra?= =?UTF-8?q?y=20in=20ApiModal=20=F0=9F=94=A7=20fix(dictAreaModal):=20change?= =?UTF-8?q?=20dictObj=20state=20to=20a=20ref=20in=20DictAreaModal=20to=20a?= =?UTF-8?q?void=20unnecessary=20re-renders=20=F0=9F=94=A7=20fix(dictAreaMo?= =?UTF-8?q?dal):=20update=20dictObj=20ref=20value=20instead=20of=20using?= =?UTF-8?q?=20setDictObj=20in=20DictAreaModal=20to=20improve=20performance?= =?UTF-8?q?=20=F0=9F=94=A7=20fix(types):=20remove=20unnecessary=20line=20b?= =?UTF-8?q?reaks=20in=20TooltipComponentType=20to=20improve=20code=20reada?= =?UTF-8?q?bility?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../components/codeTabsComponent/index.tsx | 20 +--------------- .../src/components/dictComponent/index.tsx | 10 ++++---- src/frontend/src/modals/ApiModal/index.tsx | 2 +- .../src/modals/dictAreaModal/index.tsx | 17 ++++++------- src/frontend/src/types/components/index.ts | 24 +++++++++---------- 5 files changed, 29 insertions(+), 44 deletions(-) diff --git a/src/frontend/src/components/codeTabsComponent/index.tsx b/src/frontend/src/components/codeTabsComponent/index.tsx index b304518c2..42e10581e 100644 --- a/src/frontend/src/components/codeTabsComponent/index.tsx +++ b/src/frontend/src/components/codeTabsComponent/index.tsx @@ -842,25 +842,7 @@ export default function CodeTabsComponent({ templateField ].value } - onChange={(target) => { - setData((old) => { - let newInputList = - cloneDeep(old); - newInputList![ - i - ].data.node.template[ - templateField - ].value = target; - return newInputList; - }); - tweaks.buildTweakObject!( - node["data"]["id"], - target, - node.data.node.template[ - templateField - ] - ); - }} + onChange={(target) => {}} /> diff --git a/src/frontend/src/components/dictComponent/index.tsx b/src/frontend/src/components/dictComponent/index.tsx index 5596f9b34..29082f466 100644 --- a/src/frontend/src/components/dictComponent/index.tsx +++ b/src/frontend/src/components/dictComponent/index.tsx @@ -1,4 +1,4 @@ -import { useEffect } from "react"; +import { useEffect, useRef } from "react"; import { DictComponentType } from "../../types/components"; import DictAreaModal from "../../modals/dictAreaModal"; @@ -13,13 +13,15 @@ export default function DictComponent({ }: DictComponentType): JSX.Element { useEffect(() => { if (disabled) { - onChange([""]); + onChange({}); } }, [disabled]); useEffect(() => { if (value) onChange(value); - }, [onChange]); + }, [value]); + + const ref = useRef(value); return (
{ onChange(obj); }} diff --git a/src/frontend/src/modals/ApiModal/index.tsx b/src/frontend/src/modals/ApiModal/index.tsx index 9e94ff98c..446562f66 100644 --- a/src/frontend/src/modals/ApiModal/index.tsx +++ b/src/frontend/src/modals/ApiModal/index.tsx @@ -133,7 +133,7 @@ const ApiModal = forwardRef( changes = changes?.filter((x) => x !== ""); } - if (template.type === "dict") { + if (template.type === "dict" && Array.isArray(changes)) { changes = convertArrayToObj(changes); } diff --git a/src/frontend/src/modals/dictAreaModal/index.tsx b/src/frontend/src/modals/dictAreaModal/index.tsx index b45606b25..dfec9d76e 100644 --- a/src/frontend/src/modals/dictAreaModal/index.tsx +++ b/src/frontend/src/modals/dictAreaModal/index.tsx @@ -4,7 +4,7 @@ import "ace-builds/src-noconflict/mode-python"; import "ace-builds/src-noconflict/theme-github"; import "ace-builds/src-noconflict/theme-twilight"; // import "ace-builds/webpack-resolver"; -import { useEffect, useState } from "react"; +import { useEffect, useRef, useState } from "react"; import JsonView from "react18-json-view"; import "react18-json-view/src/dark.css"; import "react18-json-view/src/style.css"; @@ -19,11 +19,12 @@ export default function DictAreaModal({ value, }): JSX.Element { const [open, setOpen] = useState(false); - const [dictObj, setDictObj] = useState(value); + + const ref = useRef(value); useEffect(() => { - if (value) setDictObj(value); - }, [dictObj]); + if (value) ref.current = value; + }, [ref]); return ( @@ -44,19 +45,19 @@ export default function DictAreaModal({ editable enableClipboard onEdit={(edit) => { - setDictObj(edit["src"]); + ref.current = edit["src"]; }} onChange={(edit) => { - setDictObj(edit["src"]); + ref.current = edit["src"]; }} - src={dictObj} + src={ref.current} />