diff --git a/src/frontend/src/components/EditFlowSettingsComponent/index.tsx b/src/frontend/src/components/EditFlowSettingsComponent/index.tsx index 6504c2b4e..8abec4ec3 100644 --- a/src/frontend/src/components/EditFlowSettingsComponent/index.tsx +++ b/src/frontend/src/components/EditFlowSettingsComponent/index.tsx @@ -10,22 +10,22 @@ type InputProps = { maxLength?: number; flows: Array<{ id: string; name: string; description: string }>; tabId: string; - invalidName: boolean; - setInvalidName: (invalidName: boolean) => void; + invalidName?: boolean; + setInvalidName?: (invalidName: boolean) => void; setName: (name: string) => void; setDescription: (description: string) => void; updateFlow: (flow: { id: string; name: string }) => void; }; export const EditFlowSettings: React.FC = ({ - name, + name: myName, invalidName, setInvalidName, description, maxLength = 50, flows, tabId, - setName, + setName: setMyName, setDescription, updateFlow, }) => { @@ -46,17 +46,25 @@ export const EditFlowSettings: React.FC = ({ } else { setIsMaxLength(false); } - if (!nameLists.current.includes(value)) { - setInvalidName(false); - } else { - setInvalidName(true); + if (invalidName !== undefined) { + if (!nameLists.current.includes(value)) { + setInvalidName(false); + } else { + setInvalidName(true); + } } setName(value); + setMyName(value); }; - const [desc, setDesc] = useState( - flows.find((f) => f.id === tabId).description - ); + const [name, setName] = useState(myName); + + const [desc, setDesc] = useState(description); + + useEffect(() => { + setName(name); + setDesc(description); + }, [name, description]); const handleDescriptionChange = (event: ChangeEvent) => { flows.find((f) => f.id === tabId).description = event.target.value; diff --git a/src/frontend/src/modals/exportModal/index.tsx b/src/frontend/src/modals/exportModal/index.tsx index ee6434f67..91c6e484c 100644 --- a/src/frontend/src/modals/exportModal/index.tsx +++ b/src/frontend/src/modals/exportModal/index.tsx @@ -1,4 +1,4 @@ -import { ReactNode, forwardRef, useContext, useState } from "react"; +import { ReactNode, forwardRef, useContext, useEffect, useState } from "react"; import EditFlowSettings from "../../components/EditFlowSettingsComponent"; import IconComponent from "../../components/genericIconComponent"; import { Button } from "../../components/ui/button"; @@ -9,14 +9,17 @@ import { removeApiKeys } from "../../utils/reactflowUtils"; import BaseModal from "../baseModal"; const ExportModal = forwardRef((props: { children: ReactNode }, ref) => { - const { flows, tabId, updateFlow, downloadFlow, saveFlow } = - useContext(TabsContext); + const { flows, tabId, updateFlow, downloadFlow } = useContext(TabsContext); const [checked, setChecked] = useState(false); - const [name, setName] = useState(flows.find((f) => f.id === tabId).name); - const [description, setDescription] = useState( - flows.find((f) => f.id === tabId).description - ); + const flow = flows.find((f) => f.id === tabId); + useEffect(() => { + setName(flow.name); + setDescription(flow.description); + }, [flow.name, flow.description]); + const [name, setName] = useState(flow.name); + const [description, setDescription] = useState(flow.description); const [open, setOpen] = useState(false); + return ( {props.children} diff --git a/src/frontend/src/modals/flowSettingsModal/index.tsx b/src/frontend/src/modals/flowSettingsModal/index.tsx index 7f9e2e6e9..58611948d 100644 --- a/src/frontend/src/modals/flowSettingsModal/index.tsx +++ b/src/frontend/src/modals/flowSettingsModal/index.tsx @@ -1,4 +1,4 @@ -import { useContext, useRef, useState } from "react"; +import { useContext, useEffect, useState } from "react"; import EditFlowSettings from "../../components/EditFlowSettingsComponent"; import IconComponent from "../../components/genericIconComponent"; import { Button } from "../../components/ui/button"; @@ -14,15 +14,15 @@ export default function FlowSettingsModal({ open: boolean; setOpen: (open: boolean) => void; }) { - const { setErrorData, setSuccessData } = useContext(alertContext); - const ref = useRef(); - const { flows, tabId, updateFlow, setTabsState, saveFlow } = - useContext(TabsContext); - const maxLength = 50; - const [name, setName] = useState(flows.find((f) => f.id === tabId).name); - const [description, setDescription] = useState( - flows.find((f) => f.id === tabId).description - ); + const { setSuccessData } = useContext(alertContext); + const { flows, tabId, updateFlow, saveFlow } = useContext(TabsContext); + const flow = flows.find((f) => f.id === tabId); + useEffect(() => { + setName(flow.name); + setDescription(flow.description); + }, [flow.name, flow.description]); + const [name, setName] = useState(flow.name); + const [description, setDescription] = useState(flow.description); const [invalidName, setInvalidName] = useState(false); function handleClick() {