Fixed bug on Export Modal (#751)
This commit is contained in:
commit
0c689dcc16
3 changed files with 40 additions and 29 deletions
|
|
@ -10,8 +10,8 @@ type InputProps = {
|
||||||
maxLength?: number;
|
maxLength?: number;
|
||||||
flows: Array<{ id: string; name: string; description: string }>;
|
flows: Array<{ id: string; name: string; description: string }>;
|
||||||
tabId: string;
|
tabId: string;
|
||||||
invalidName: boolean;
|
invalidName?: boolean;
|
||||||
setInvalidName: (invalidName: boolean) => void;
|
setInvalidName?: (invalidName: boolean) => void;
|
||||||
setName: (name: string) => void;
|
setName: (name: string) => void;
|
||||||
setDescription: (description: string) => void;
|
setDescription: (description: string) => void;
|
||||||
updateFlow: (flow: { id: string; name: string }) => void;
|
updateFlow: (flow: { id: string; name: string }) => void;
|
||||||
|
|
@ -46,21 +46,29 @@ export const EditFlowSettings: React.FC<InputProps> = ({
|
||||||
} else {
|
} else {
|
||||||
setIsMaxLength(false);
|
setIsMaxLength(false);
|
||||||
}
|
}
|
||||||
|
if (invalidName !== undefined) {
|
||||||
if (!nameLists.current.includes(value)) {
|
if (!nameLists.current.includes(value)) {
|
||||||
setInvalidName(false);
|
setInvalidName(false);
|
||||||
} else {
|
} else {
|
||||||
setInvalidName(true);
|
setInvalidName(true);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
setName(value);
|
setName(value);
|
||||||
|
setCurrentName(value);
|
||||||
};
|
};
|
||||||
|
|
||||||
const [desc, setDesc] = useState(
|
const [currentName, setCurrentName] = useState(name);
|
||||||
flows.find((f) => f.id === tabId).description
|
|
||||||
);
|
const [currentDescription, setCurrentDescription] = useState(description);
|
||||||
|
|
||||||
|
useEffect(() => {
|
||||||
|
setCurrentName(name);
|
||||||
|
setCurrentDescription(description);
|
||||||
|
}, [name, description]);
|
||||||
|
|
||||||
const handleDescriptionChange = (event: ChangeEvent<HTMLTextAreaElement>) => {
|
const handleDescriptionChange = (event: ChangeEvent<HTMLTextAreaElement>) => {
|
||||||
flows.find((f) => f.id === tabId).description = event.target.value;
|
flows.find((f) => f.id === tabId).description = event.target.value;
|
||||||
setDesc(flows.find((f) => f.id === tabId).description);
|
setCurrentDescription(flows.find((f) => f.id === tabId).description);
|
||||||
setDescription(event.target.value);
|
setDescription(event.target.value);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
@ -81,7 +89,7 @@ export const EditFlowSettings: React.FC<InputProps> = ({
|
||||||
onChange={handleNameChange}
|
onChange={handleNameChange}
|
||||||
type="text"
|
type="text"
|
||||||
name="name"
|
name="name"
|
||||||
value={name ?? ""}
|
value={currentName ?? ""}
|
||||||
placeholder="File name"
|
placeholder="File name"
|
||||||
id="name"
|
id="name"
|
||||||
maxLength={maxLength}
|
maxLength={maxLength}
|
||||||
|
|
@ -96,7 +104,7 @@ export const EditFlowSettings: React.FC<InputProps> = ({
|
||||||
name="description"
|
name="description"
|
||||||
id="description"
|
id="description"
|
||||||
onChange={handleDescriptionChange}
|
onChange={handleDescriptionChange}
|
||||||
value={desc}
|
value={currentDescription}
|
||||||
placeholder="Flow description"
|
placeholder="Flow description"
|
||||||
className="mt-2 max-h-[100px] font-normal"
|
className="mt-2 max-h-[100px] font-normal"
|
||||||
rows={3}
|
rows={3}
|
||||||
|
|
|
||||||
|
|
@ -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 EditFlowSettings from "../../components/EditFlowSettingsComponent";
|
||||||
import IconComponent from "../../components/genericIconComponent";
|
import IconComponent from "../../components/genericIconComponent";
|
||||||
import { Button } from "../../components/ui/button";
|
import { Button } from "../../components/ui/button";
|
||||||
|
|
@ -9,14 +9,17 @@ import { removeApiKeys } from "../../utils/reactflowUtils";
|
||||||
import BaseModal from "../baseModal";
|
import BaseModal from "../baseModal";
|
||||||
|
|
||||||
const ExportModal = forwardRef((props: { children: ReactNode }, ref) => {
|
const ExportModal = forwardRef((props: { children: ReactNode }, ref) => {
|
||||||
const { flows, tabId, updateFlow, downloadFlow, saveFlow } =
|
const { flows, tabId, updateFlow, downloadFlow } = useContext(TabsContext);
|
||||||
useContext(TabsContext);
|
|
||||||
const [checked, setChecked] = useState(false);
|
const [checked, setChecked] = useState(false);
|
||||||
const [name, setName] = useState(flows.find((f) => f.id === tabId).name);
|
const flow = flows.find((f) => f.id === tabId);
|
||||||
const [description, setDescription] = useState(
|
useEffect(() => {
|
||||||
flows.find((f) => f.id === tabId).description
|
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);
|
const [open, setOpen] = useState(false);
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<BaseModal size="smaller" open={open} setOpen={setOpen}>
|
<BaseModal size="smaller" open={open} setOpen={setOpen}>
|
||||||
<BaseModal.Trigger>{props.children}</BaseModal.Trigger>
|
<BaseModal.Trigger>{props.children}</BaseModal.Trigger>
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
import { useContext, useRef, useState } from "react";
|
import { useContext, useEffect, useState } from "react";
|
||||||
import EditFlowSettings from "../../components/EditFlowSettingsComponent";
|
import EditFlowSettings from "../../components/EditFlowSettingsComponent";
|
||||||
import IconComponent from "../../components/genericIconComponent";
|
import IconComponent from "../../components/genericIconComponent";
|
||||||
import { Button } from "../../components/ui/button";
|
import { Button } from "../../components/ui/button";
|
||||||
|
|
@ -14,15 +14,15 @@ export default function FlowSettingsModal({
|
||||||
open: boolean;
|
open: boolean;
|
||||||
setOpen: (open: boolean) => void;
|
setOpen: (open: boolean) => void;
|
||||||
}) {
|
}) {
|
||||||
const { setErrorData, setSuccessData } = useContext(alertContext);
|
const { setSuccessData } = useContext(alertContext);
|
||||||
const ref = useRef();
|
const { flows, tabId, updateFlow, saveFlow } = useContext(TabsContext);
|
||||||
const { flows, tabId, updateFlow, setTabsState, saveFlow } =
|
const flow = flows.find((f) => f.id === tabId);
|
||||||
useContext(TabsContext);
|
useEffect(() => {
|
||||||
const maxLength = 50;
|
setName(flow.name);
|
||||||
const [name, setName] = useState(flows.find((f) => f.id === tabId).name);
|
setDescription(flow.description);
|
||||||
const [description, setDescription] = useState(
|
}, [flow.name, flow.description]);
|
||||||
flows.find((f) => f.id === tabId).description
|
const [name, setName] = useState(flow.name);
|
||||||
);
|
const [description, setDescription] = useState(flow.description);
|
||||||
const [invalidName, setInvalidName] = useState(false);
|
const [invalidName, setInvalidName] = useState(false);
|
||||||
|
|
||||||
function handleClick() {
|
function handleClick() {
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue