@@ -402,11 +402,20 @@ const handleFetchTaskVariables = (formId) => {
402402 fetchTaskVariables ( formId )
403403 . then ( ( res ) => {
404404 const taskVariables = res . data ?. taskVariables || [ ] ;
405- const isEditingWithSameForm = filterToEdit ?. id && filterToEdit ?. properties ?. formId === formId ;
406- // Always prefer latest saved filter state for existing variables (preserve isChecked)
407- const sourceVars = ( selectedFilterExistingData ?. variables || filterToEdit ?. variables || [ ] ) ;
405+ // Determine if we are editing an existing filter with the same form
406+ const savedFormId =
407+ filterToEdit ?. properties ?. formId ||
408+ selectedFilterExistingData ?. properties ?. formId ;
409+ const isEditingWithSameForm =
410+ ! ! filterToEdit ?. id &&
411+ savedFormId &&
412+ String ( savedFormId ) === String ( formId ) ;
413+
414+ // Always prefer latest saved filter state for existing variables (preserve isChecked and sortOrder)
415+ const sourceVars =
416+ selectedFilterExistingData ?. variables || filterToEdit ?. variables || [ ] ;
408417 let combinedVars ;
409-
418+
410419 if ( isEditingWithSameForm ) {
411420 // Get current task variable keys for comparison
412421 const currentTaskVariableKeys = taskVariables
@@ -455,7 +464,12 @@ const handleFetchTaskVariables = (formId) => {
455464 combinedVars = [ ...preservedDefaultVars , ...dynamicVariables ] ;
456465 }
457466
458- setVariableArray ( combinedVars ) ;
467+ // Ensure UI reflects persisted ordering
468+ const sortedVars = [ ...combinedVars ] . sort (
469+ ( a , b ) => ( a . sortOrder ?? 0 ) - ( b . sortOrder ?? 0 )
470+ ) ;
471+
472+ setVariableArray ( sortedVars ) ;
459473 } )
460474 . catch ( ( err ) => console . error ( err ) ) ;
461475} ;
0 commit comments