@@ -14,57 +14,75 @@ const RequestNode = ({ id, data }) => {
1414 const requestNodeDeletePreRequestVar = useCanvasStore ( ( state ) => state . requestNodeDeletePreRequestVar ) ;
1515 const requestNodeChangePreRequestVar = useCanvasStore ( ( state ) => state . requestNodeChangePreRequestVar ) ;
1616
17+ const requestNodeAddPostResponseVar = useCanvasStore ( ( state ) => state . requestNodeAddPostResponseVar ) ;
18+ const requestNodeDeletePostResponseVar = useCanvasStore ( ( state ) => state . requestNodeDeletePostResponseVar ) ;
19+ const requestNodeChangePostResponseVar = useCanvasStore ( ( state ) => state . requestNodeChangePostResponseVar ) ;
20+
1721 const [ variableDialogOpen , setVariableDialogOpen ] = useState ( false ) ;
22+ const [ modalType , setModalType ] = useState ( '' ) ;
1823
19- const handleAddVariable = ( name , type ) => {
20- requestNodeAddPreRequestVar ( id , name , type ) ;
24+ const handleAddVariable = ( vType , name , type ) => {
25+ if ( vType === 'pre-request' ) {
26+ requestNodeAddPreRequestVar ( id , name , type ) ;
27+ } else if ( vType === 'post-response' ) {
28+ requestNodeAddPostResponseVar ( id , name , type ) ;
29+ }
2130 } ;
2231
23- const handleDeleteVariable = ( event , vId ) => {
24- requestNodeDeletePreRequestVar ( id , vId ) ;
32+ const handleDeleteVariable = ( event , vType , vId ) => {
33+ if ( vType === 'pre-request' ) {
34+ requestNodeDeletePreRequestVar ( id , vId ) ;
35+ } else if ( vType === 'post-response' ) {
36+ requestNodeDeletePostResponseVar ( id , vId ) ;
37+ }
2538 } ;
2639
27- const handleVariableChange = ( event , vId ) => {
28- requestNodeChangePreRequestVar ( id , vId , event . target . value ) ;
40+ const handleVariableChange = ( event , vType , vId ) => {
41+ if ( vType === 'pre-request' ) {
42+ requestNodeChangePreRequestVar ( id , vId , event . target . value ) ;
43+ } else if ( vType === 'post-response' ) {
44+ requestNodeChangePostResponseVar ( id , vId , event . target . value ) ;
45+ }
2946 } ;
3047
3148 const handleUrlInputChange = ( event ) => {
3249 setRequestNodeUrl ( id , event . target . value ) ;
3350 } ;
3451
35- const renderVariables = ( ) => {
52+ const renderVariables = ( vType ) => {
53+ const variables = vType === 'pre-request' ? data . preReqVars : data . postRespVars ;
3654 return (
3755 < >
38- { data . preReqVars &&
39- Object . keys ( data . preReqVars ) . map ( ( id ) => (
56+ { variables &&
57+ Object . keys ( variables ) . map ( ( id ) => (
4058 < div className = 'flex items-center justify-between pb-2' key = { id } >
4159 < div className = 'flex items-center justify-between text-sm border rounded-md border-neutral-500 text-neutral-500 outline-0 focus:ring-0' >
4260 < label className = 'px-4 py-2 border-r rounded-bl-md rounded-tl-md border-r-neutral-500' > { id } </ label >
43- { data . preReqVars [ id ] . type === 'Boolean' ? (
61+ { variables [ id ] . type === 'Boolean' ? (
4462 < select
45- onChange = { ( e ) => handleVariableChange ( e , id ) }
63+ onChange = { ( e ) => handleVariableChange ( e , vType , id ) }
4664 name = 'boolean-val'
4765 className = 'nodrag h-9 w-full rounded-br-md rounded-tr-md p-2.5 px-1 '
48- value = { data . preReqVars [ id ] . value }
66+ value = { variables [ id ] . value }
4967 >
5068 < option value = 'true' > True</ option >
5169 < option value = 'false' > False</ option >
5270 </ select >
5371 ) : (
5472 < input
55- type = { getInputType ( data . preReqVars [ id ] . type ) }
73+ type = { getInputType ( variables [ id ] . type ) }
5674 className = 'nodrag nowheel block h-9 w-full rounded-bl-md rounded-tl-md p-2.5'
5775 name = 'variable-value'
58- data-type = { getInputType ( data . preReqVars [ id ] . type ) }
59- onChange = { ( e ) => handleVariableChange ( e , id ) }
60- value = { data . preReqVars [ id ] . value }
76+ data-type = { getInputType ( variables [ id ] . type ) }
77+ onChange = { ( e ) => handleVariableChange ( e , vType , id ) }
78+ value = { variables [ id ] . value }
6179 />
6280 ) }
6381 < div className = 'px-4 py-2 border-l rounded-br-md rounded-tr-md border-l-neutral-500' >
64- { data . preReqVars [ id ] . type }
82+ { variables [ id ] . type }
6583 </ div >
6684 </ div >
67- < div onClick = { ( e ) => handleDeleteVariable ( e , id ) } className = 'p-2 text-neutral-500' >
85+ < div onClick = { ( e ) => handleDeleteVariable ( e , vType , id ) } className = 'p-2 text-neutral-500' >
6886 < TrashIcon className = 'w-4 h-4' />
6987 </ div >
7088 </ div >
@@ -99,23 +117,36 @@ const RequestNode = ({ id, data }) => {
99117 </ div >
100118 < div >
101119 Pre Request
102- < button className = 'p-2' onClick = { ( ) => setVariableDialogOpen ( true ) } >
120+ < button
121+ className = 'p-2'
122+ onClick = { ( ) => {
123+ setModalType ( 'pre-request' ) ;
124+ setVariableDialogOpen ( true ) ;
125+ } }
126+ >
103127 < PlusIcon className = 'w-4 h-4' />
104128 </ button >
105- < div className = 'p-2 pt-4 border-t border-neutral-300 bg-slate-50' > { renderVariables ( ) } </ div >
129+ < div className = 'p-2 pt-4 border-t border-neutral-300 bg-slate-50' > { renderVariables ( 'pre-request' ) } </ div >
106130 </ div >
107131 < div >
108132 Post Response
109- < button className = 'p-2' onClick = { ( ) => setVariableDialogOpen ( true ) } >
133+ < button
134+ className = 'p-2'
135+ onClick = { ( ) => {
136+ setModalType ( 'post-response' ) ;
137+ setVariableDialogOpen ( true ) ;
138+ } }
139+ >
110140 < PlusIcon className = 'w-4 h-4' />
111141 </ button >
112- < div className = 'p-2 pt-4 border-t border-neutral-300 bg-slate-50' > { renderVariables ( ) } </ div >
142+ < div className = 'p-2 pt-4 border-t border-neutral-300 bg-slate-50' > { renderVariables ( 'post-response' ) } </ div >
113143 </ div >
114144 </ div >
115145 </ div >
116146 < AddVariableModal
117147 closeFn = { ( ) => setVariableDialogOpen ( false ) }
118148 open = { variableDialogOpen }
149+ modalType = { modalType }
119150 onVariableAdd = { handleAddVariable }
120151 />
121152 </ FlowNode >
0 commit comments