From 4a82d63f83012a44188440c970e1fc394a8c92dc Mon Sep 17 00:00:00 2001 From: Miguel Peixe Date: Mon, 11 May 2026 17:00:19 -0300 Subject: [PATCH 1/2] fix(audience): normalize inbound option shape in integrations configure view MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit class-integration.php injects incoming_metadata_fields.options as [{value, label}] objects, but the Inbound section in configure-view mapped them as if they were plain strings — so React got an object as the key for every checkbox and rendered '[object Object]' duplicates. Normalize each option to {value, label} (with bare-string back-compat) before binding the key, label, and selection logic. --- .../audience/views/integrations/configure-view.js | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/src/wizards/audience/views/integrations/configure-view.js b/src/wizards/audience/views/integrations/configure-view.js index 00861f9fcd..923b6a350b 100644 --- a/src/wizards/audience/views/integrations/configure-view.js +++ b/src/wizards/audience/views/integrations/configure-view.js @@ -144,16 +144,20 @@ export const ConfigureView = ( { integrations, loading, pendingChanges, saving, - { ( inboundField.options || [] ).map( optionName => { + { ( inboundField.options || [] ).map( option => { + // Framework injects options as { value, label } objects (see class-integration.php + // get_settings_config) but accept bare strings for backward compatibility. + const optionValue = typeof option === 'string' ? option : option.value; + const optionLabel = typeof option === 'string' ? option : option.label || option.value; const currentValue = getFieldValue( inboundField ); const selected = Array.isArray( currentValue ) ? currentValue : []; return ( handleCheckboxListChange( inboundField.key, currentValue, optionName, checked ) } + key={ optionValue } + label={ optionLabel } + checked={ selected.includes( optionValue ) } + onChange={ checked => handleCheckboxListChange( inboundField.key, currentValue, optionValue, checked ) } /> ); } ) } From 9da2b925a7c97a404fc691eb7484c67d68a87011 Mon Sep 17 00:00:00 2001 From: Miguel Peixe Date: Wed, 13 May 2026 11:54:20 -0300 Subject: [PATCH 2/2] Potential fix for pull request finding Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> --- src/wizards/audience/views/integrations/configure-view.js | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/wizards/audience/views/integrations/configure-view.js b/src/wizards/audience/views/integrations/configure-view.js index 923b6a350b..973b293961 100644 --- a/src/wizards/audience/views/integrations/configure-view.js +++ b/src/wizards/audience/views/integrations/configure-view.js @@ -145,8 +145,9 @@ export const ConfigureView = ( { integrations, loading, pendingChanges, saving, { ( inboundField.options || [] ).map( option => { - // Framework injects options as { value, label } objects (see class-integration.php - // get_settings_config) but accept bare strings for backward compatibility. + // Framework injects options as { value, label } objects + // (see class-integration.php:get_settings_config()), but accepts bare strings + // for backward compatibility. const optionValue = typeof option === 'string' ? option : option.value; const optionLabel = typeof option === 'string' ? option : option.label || option.value; const currentValue = getFieldValue( inboundField );