11import { Handle , Position } from "reactflow"
22import { Sheet , SheetClose , SheetContent , SheetFooter , SheetTrigger } from "@/components/ui/sheet" ;
3- import React , { useEffect , useState } from "react" ;
3+ import { useEffect , useState } from "react" ;
44import { useNodeValue } from "@/context/useNodeContext" ;
55import { Button } from "../ui/button" ;
66import usePipelineChangesLog from "@/context/usePipelineChangesLog" ;
@@ -36,14 +36,32 @@ export const DestinationNode = ({ data: Data }: any) => {
3636 const [ isSheetOpen , setIsSheetOpen ] = useState ( false )
3737 const { setNodeValue } = useNodeValue ( )
3838 const { setChangesLog } = usePipelineChangesLog ( )
39- const [ data , setData ] = useState < object > ( { } )
4039 const [ form , setForm ] = useState < object > ( { } )
4140
4241 const DestinationLabel = Data . supported_signals
43- const handleSubmit = ( e : React . FormEvent ) => {
44- e . preventDefault ( ) ;
45- setIsSheetOpen ( false )
46- } ;
42+ const handleSubmit = ( ) => {
43+ // setNodeValue(prev => [
44+ // ...prev,
45+ // {
46+ // id: `${Data.label}-${Date.now()}`,
47+ // data: { ...data },
48+ // type: 'source',
49+ // position: { x: 0, y: 0 },
50+ // },
51+ // ]);
52+ setChangesLog ( prev => [
53+ ...prev ,
54+ { type : 'destination' , name : Data . label , status : "added" } ,
55+ ] ) ;
56+
57+ const nodes = JSON . parse ( localStorage . getItem ( "Nodes" ) || "[]" ) ;
58+ const updatedNodes = nodes . map ( ( node : any ) =>
59+ node . plugin_name === Data . plugin_name ? { ...node , config : data } : node
60+ ) ;
61+ localStorage . setItem ( "Nodes" , JSON . stringify ( updatedNodes ) ) ;
62+
63+ setIsSheetOpen ( false ) ;
64+ }
4765
4866 const getForm = async ( ) => {
4967 const res = await TransporterService . getTransporterForm ( Data . plugin_name )
@@ -59,6 +77,10 @@ export const DestinationNode = ({ data: Data }: any) => {
5977 setChangesLog ( prev => [ ...prev , { type : 'destination' , name : Data . label , status : "deleted" } ] )
6078 setIsSheetOpen ( false )
6179 }
80+ const getSource = JSON . parse ( localStorage . getItem ( "Nodes" ) || "[]" ) . find ( ( source : any ) => source . plugin_name === Data . plugin_name ) ;
81+ const sourceConfig = getSource ?. config
82+ const [ data , setData ] = useState < object > ( sourceConfig )
83+
6284 return (
6385 < Sheet open = { isSheetOpen } onOpenChange = { setIsSheetOpen } >
6486 < SheetTrigger asChild >
@@ -67,10 +89,10 @@ export const DestinationNode = ({ data: Data }: any) => {
6789 < div className = "bg-gray-200 flex items-center rounded-md h-24 w-[8rem]" >
6890 < Handle type = "target" position = { Position . Left } className = "bg-green-600 w-0 h-0 rounded-full" />
6991 < div className = "flex ml-5 flex-col items-center justify-center w-full" >
70- < div style = { { fontSize : "9px" , lineHeight : "0.8rem" } } className = "font-medium" > { Data . name } </ div >
92+ < div style = { { fontSize : "9px" , lineHeight : "0.8rem" } } className = "font-medium" > { Data . name } </ div >
7193 < div className = "flex justify-between gap-2 mr-4 text-xs mt-2" >
72- { DestinationLabel . map ( ( source :any , index :number ) => (
73- < p style = { { fontSize :"8px" } } key = { index } >
94+ { DestinationLabel . map ( ( source : any , index : number ) => (
95+ < p style = { { fontSize : "8px" } } key = { index } >
7496 { source }
7597 </ p >
7698 ) ) }
@@ -92,8 +114,8 @@ export const DestinationNode = ({ data: Data }: any) => {
92114 < div className = "flex flex-col gap-4 p-4" >
93115 < div className = "flex flex-col gap-3" >
94116 < div className = "flex items-center gap-4" >
95- < p className = "text-lg bg-gray-500 items-center rounded-lg p-2 px-3 m-1 text-white" > →|</ p >
96- < h2 className = "text-xl font-bold" > { Data . name } </ h2 >
117+ < p className = "text-lg bg-gray-500 items-center rounded-lg p-2 px-3 m-1 text-white" > →|</ p >
118+ < h2 className = "text-xl font-bold" > { Data . name } </ h2 >
97119 </ div >
98120 < p className = "text-gray-500" > Generate the defined log type at the rate desired < span className = "text-blue-500 underline" > Documentation</ span > </ p >
99121
0 commit comments