Fixed submit submitting baseModal, fixed state problem on Edit Node Modal when closing and opening

This commit is contained in:
Lucas Oliveira 2024-06-10 14:09:29 -03:00
commit 32dda2fcd1
2 changed files with 23 additions and 20 deletions

View file

@ -86,6 +86,7 @@ const Footer: React.FC<{
loading?: boolean;
disabled?: boolean;
dataTestId?: string;
onClick?: () => void;
};
}> = ({ children, submit }) => {
return (
@ -101,7 +102,8 @@ const Footer: React.FC<{
</DialogClose>
<Button
data-testid={submit.dataTestId}
type="submit"
type={submit.onClick ? "button" : "submit"}
onClick={submit.onClick}
loading={submit.loading}
>
{submit.icon && submit.icon}

View file

@ -8,6 +8,7 @@ import { NodeDataType } from "../../types/flow";
import BaseModal from "../baseModal";
import useColumnDefs from "./hooks/use-column-defs";
import useRowData from "./hooks/use-row-data";
import { cloneDeep } from "lodash";
const EditNodeModal = forwardRef(
(
@ -26,7 +27,7 @@ const EditNodeModal = forwardRef(
},
ref,
) => {
const myData = useRef(data);
const myData = useRef(cloneDeep(data));
const setNode = useFlowStore((state) => state.setNode);
@ -36,6 +37,7 @@ const EditNodeModal = forwardRef(
}
const handleOnNewValue = (newValue: any, name) => {
console.log(newValue);
myData.current.node!.template[name].value = newValue;
};
@ -52,7 +54,7 @@ const EditNodeModal = forwardRef(
useEffect(() => {
if (gridApi && open) {
myData.current = data;
myData.current = cloneDeep(data);
gridApi.refreshCells();
}
}, [gridApi, open]);
@ -64,22 +66,7 @@ const EditNodeModal = forwardRef(
// }, []);
return (
<BaseModal
key={data.id}
size="medium-tall"
open={open}
setOpen={setOpen}
onSubmit={() => {
setNode(data.id, (old) => ({
...old,
data: {
...old.data,
node: myData.current.node,
},
}));
setOpen(false);
}}
>
<BaseModal key={data.id} size="medium-tall" open={open} setOpen={setOpen}>
<BaseModal.Trigger>
<></>
</BaseModal.Trigger>
@ -105,7 +92,21 @@ const EditNodeModal = forwardRef(
</div>
</BaseModal.Content>
<BaseModal.Footer submit={{ label: "Save Changes" }} />
<BaseModal.Footer
submit={{
label: "Save Changes",
onClick: () => {
setNode(data.id, (old) => ({
...old,
data: {
...old.data,
node: myData.current.node,
},
}));
setOpen(false);
},
}}
/>
</BaseModal>
);
},