diff --git a/includes/reader-activation/integrations/class-integration.php b/includes/reader-activation/integrations/class-integration.php index 82d655fd0b..bd9aef3e5f 100644 --- a/includes/reader-activation/integrations/class-integration.php +++ b/includes/reader-activation/integrations/class-integration.php @@ -717,6 +717,9 @@ private function get_settings_field_by_key( $key ) { private function sanitize_settings_field_value( $field, $value ) { $type = $field['type'] ?? 'text'; switch ( $type ) { + case 'hidden': + case 'oauth': + return $value; // Read-only or managed programmatically. case 'checkbox': return (bool) $value; case 'number': diff --git a/src/wizards/audience/views/integrations/settings-field.js b/src/wizards/audience/views/integrations/settings-field.js index ba2514d063..a7774b50a4 100644 --- a/src/wizards/audience/views/integrations/settings-field.js +++ b/src/wizards/audience/views/integrations/settings-field.js @@ -7,7 +7,7 @@ import { CheckboxControl, ExternalLink } from '@wordpress/components'; /** * Internal dependencies. */ -import { Grid, SelectControl, TextControl } from '../../../../../packages/components/src'; +import { Button, Grid, SelectControl, TextControl } from '../../../../../packages/components/src'; /** * Render a single settings field. @@ -32,6 +32,34 @@ export const SettingsField = ( { field, value, onChange } ) => { ); switch ( type ) { + case 'hidden': + return null; + case 'oauth': { + const isConnected = !! value; + const oauthUrl = field.oauth_url || ''; + return ( +
+

+ { label } +

+ { description &&

{ description }

} + { isConnected ? ( + <> +

{ value }

+ { field.disconnect_url && ( + + ) } + + ) : ( + + ) } +
+ ); + } case 'metadata': { const selectedFields = Array.isArray( value ) ? value : []; return (