Fixed edit node modal not being updated with opening of modal
This commit is contained in:
parent
b1ea0a1795
commit
a1e521f2c6
2 changed files with 21 additions and 21 deletions
|
|
@ -10,6 +10,7 @@ const useColumnDefs = (
|
||||||
myData: any,
|
myData: any,
|
||||||
handleOnNewValue: (newValue: any, name: string) => void,
|
handleOnNewValue: (newValue: any, name: string) => void,
|
||||||
changeAdvanced: (n: string) => void,
|
changeAdvanced: (n: string) => void,
|
||||||
|
open: boolean,
|
||||||
) => {
|
) => {
|
||||||
const columnDefs: ColDef[] = useMemo(
|
const columnDefs: ColDef[] = useMemo(
|
||||||
() => [
|
() => [
|
||||||
|
|
@ -81,7 +82,7 @@ const useColumnDefs = (
|
||||||
cellClass: "no-border",
|
cellClass: "no-border",
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
[],
|
[open],
|
||||||
);
|
);
|
||||||
|
|
||||||
return columnDefs;
|
return columnDefs;
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
import { ColDef } from "ag-grid-community";
|
import { ColDef, GridApi } from "ag-grid-community";
|
||||||
import { cloneDeep } from "lodash";
|
import { cloneDeep } from "lodash";
|
||||||
import { forwardRef, useEffect, useRef } from "react";
|
import { forwardRef, useEffect, useRef, useState } from "react";
|
||||||
import IconComponent from "../../components/genericIconComponent";
|
import IconComponent from "../../components/genericIconComponent";
|
||||||
import TableComponent from "../../components/tableComponent";
|
import TableComponent from "../../components/tableComponent";
|
||||||
import { Badge } from "../../components/ui/badge";
|
import { Badge } from "../../components/ui/badge";
|
||||||
|
|
@ -25,11 +25,7 @@ const EditNodeModal = forwardRef(
|
||||||
},
|
},
|
||||||
ref,
|
ref,
|
||||||
) => {
|
) => {
|
||||||
const nodes = useFlowStore((state) => state.nodes);
|
const myData = useRef(data);
|
||||||
|
|
||||||
const dataFromStore = nodes.find((node) => node.id === node.id)?.data;
|
|
||||||
|
|
||||||
const myData = useRef(dataFromStore ?? data);
|
|
||||||
|
|
||||||
const setNode = useFlowStore((state) => state.setNode);
|
const setNode = useFlowStore((state) => state.setNode);
|
||||||
|
|
||||||
|
|
@ -42,30 +38,30 @@ const EditNodeModal = forwardRef(
|
||||||
myData.current.node!.template[name].value = newValue;
|
myData.current.node!.template[name].value = newValue;
|
||||||
};
|
};
|
||||||
|
|
||||||
useEffect(() => {
|
|
||||||
if (open) {
|
|
||||||
const cloneData = cloneDeep(dataFromStore ?? data);
|
|
||||||
myData.current = cloneData;
|
|
||||||
}
|
|
||||||
}, [open]);
|
|
||||||
|
|
||||||
const rowData = useRowData(myData, open);
|
const rowData = useRowData(myData, open);
|
||||||
|
|
||||||
const columnDefs: ColDef[] = useColumnDefs(
|
const columnDefs: ColDef[] = useColumnDefs(
|
||||||
myData,
|
myData,
|
||||||
handleOnNewValue,
|
handleOnNewValue,
|
||||||
changeAdvanced,
|
changeAdvanced,
|
||||||
|
open,
|
||||||
);
|
);
|
||||||
|
|
||||||
|
const [gridApi, setGridApi] = useState<GridApi | null>(null);
|
||||||
|
|
||||||
|
useEffect(() => {
|
||||||
|
if (gridApi && open) {
|
||||||
|
myData.current = data;
|
||||||
|
gridApi.refreshCells();
|
||||||
|
}
|
||||||
|
}, [gridApi, open]);
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<BaseModal
|
<BaseModal
|
||||||
key={data.id}
|
key={data.id}
|
||||||
size="medium-tall"
|
size="medium-tall"
|
||||||
open={open}
|
open={open}
|
||||||
setOpen={setOpen}
|
setOpen={setOpen}
|
||||||
onChangeOpenModal={(open) => {
|
|
||||||
myData.current = data;
|
|
||||||
}}
|
|
||||||
onSubmit={() => {
|
onSubmit={() => {
|
||||||
setNode(data.id, (old) => ({
|
setNode(data.id, (old) => ({
|
||||||
...old,
|
...old,
|
||||||
|
|
@ -80,9 +76,9 @@ const EditNodeModal = forwardRef(
|
||||||
<BaseModal.Trigger>
|
<BaseModal.Trigger>
|
||||||
<></>
|
<></>
|
||||||
</BaseModal.Trigger>
|
</BaseModal.Trigger>
|
||||||
<BaseModal.Header description={myData.current.node?.description!}>
|
<BaseModal.Header description={data.node?.description!}>
|
||||||
<span className="pr-2">{myData.current.type}</span>
|
<span className="pr-2">{data.type}</span>
|
||||||
<Badge variant="secondary">ID: {myData.current.id}</Badge>
|
<Badge variant="secondary">ID: {data.id}</Badge>
|
||||||
</BaseModal.Header>
|
</BaseModal.Header>
|
||||||
<BaseModal.Content>
|
<BaseModal.Content>
|
||||||
<div className="flex h-full flex-col">
|
<div className="flex h-full flex-col">
|
||||||
|
|
@ -97,6 +93,9 @@ const EditNodeModal = forwardRef(
|
||||||
<div className="h-full">
|
<div className="h-full">
|
||||||
{nodeLength > 0 && (
|
{nodeLength > 0 && (
|
||||||
<TableComponent
|
<TableComponent
|
||||||
|
onGridReady={(params) => {
|
||||||
|
setGridApi(params.api);
|
||||||
|
}}
|
||||||
tooltipShowDelay={0.5}
|
tooltipShowDelay={0.5}
|
||||||
columnDefs={columnDefs}
|
columnDefs={columnDefs}
|
||||||
rowData={rowData}
|
rowData={rowData}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue