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

View file

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