diff --git a/modules/ppcp-settings/resources/js/Components/ReusableComponents/SettingsBlocks/FeatureSettingsBlock.js b/modules/ppcp-settings/resources/js/Components/ReusableComponents/SettingsBlocks/FeatureSettingsBlock.js index 9a869e025..9bd5c21fd 100644 --- a/modules/ppcp-settings/resources/js/Components/ReusableComponents/SettingsBlocks/FeatureSettingsBlock.js +++ b/modules/ppcp-settings/resources/js/Components/ReusableComponents/SettingsBlocks/FeatureSettingsBlock.js @@ -20,30 +20,30 @@ const FeatureSettingsBlock = ( { title, description, ...props } ) => { ); }; - const renderButton = ( button ) => { - const buttonElement = ( - - { button.text } - - ); + const FeatureButton = ( { + className, + variant, + text, + isBusy, + url, + urls, + onClick, + } ) => { + const buttonProps = { + className, + isBusy, + variant, + }; - // If there's a URL (either direct or in urls object), wrap in anchor tag - if ( button.url || button.urls ) { - const href = button.urls ? button.urls.live : button.url; - return ( - - { buttonElement } - - ); + if ( url || urls ) { + buttonProps.href = urls ? urls.live : url; + buttonProps.target = '_blank'; + } + if ( ! buttonProps.href ) { + buttonProps.onClick = onClick; } - return buttonElement; + return { text }; }; return ( @@ -62,7 +62,27 @@ const FeatureSettingsBlock = ( { title, description, ...props } ) => { - { props.actionProps?.buttons.map( renderButton ) } + { props.actionProps?.buttons.map( + ( { + class: className, + type, + text, + url, + urls, + onClick, + } ) => ( + + ) + ) }