@@ -62,26 +62,35 @@ export const BrowserStepsProvider: React.FC<{ children: React.ReactNode }> = ({
62
62
const addListStep = ( listSelector : string , newFields : { [ key : string ] : TextStep } , listId : number , pagination ?: { type : string ; selector : string } , limit ?: number ) => {
63
63
setBrowserSteps ( prevSteps => {
64
64
const existingListStepIndex = prevSteps . findIndex ( step => step . type === 'list' && step . id === listId ) ;
65
+
65
66
if ( existingListStepIndex !== - 1 ) {
66
67
const updatedSteps = [ ...prevSteps ] ;
67
68
const existingListStep = updatedSteps [ existingListStepIndex ] as ListStep ;
68
-
69
- const filteredNewFields = Object . entries ( newFields ) . reduce ( ( acc , [ key , value ] ) => {
69
+
70
+ // Preserve existing labels for fields
71
+ const mergedFields = Object . entries ( newFields ) . reduce ( ( acc , [ key , field ] ) => {
70
72
if ( ! discardedFields . has ( `${ listId } -${ key } ` ) ) {
71
- acc [ key ] = value ;
73
+ // If field exists, preserve its label
74
+ if ( existingListStep . fields [ key ] ) {
75
+ acc [ key ] = {
76
+ ...field ,
77
+ label : existingListStep . fields [ key ] . label
78
+ } ;
79
+ } else {
80
+ acc [ key ] = field ;
81
+ }
72
82
}
73
83
return acc ;
74
84
} , { } as { [ key : string ] : TextStep } ) ;
75
-
85
+
76
86
updatedSteps [ existingListStepIndex ] = {
77
87
...existingListStep ,
78
- fields : { ... existingListStep . fields , ... filteredNewFields } ,
79
- pagination : pagination ,
80
- limit : limit ,
88
+ fields : mergedFields ,
89
+ pagination : pagination || existingListStep . pagination ,
90
+ limit : limit
81
91
} ;
82
92
return updatedSteps ;
83
93
} else {
84
- // Create a new ListStep
85
94
return [
86
95
...prevSteps ,
87
96
{ id : listId , type : 'list' , listSelector, fields : newFields , pagination, limit }
0 commit comments