woocommerce-paypal-payments/modules/ppcp-settings/resources/js/Components/ReusableComponents/SettingsBlock.js
Philipp Stracker 26bd9f2d05
🐛 Fix re-render issues
2025-01-27 20:35:54 +01:00

47 lines
999 B
JavaScript

import classNames from 'classnames';
import { Description, Header, Title, TitleExtra, Content } from './Elements';
const SettingsBlock = ( {
className,
children,
title,
titleSuffix,
description,
horizontalLayout = false,
separatorAndGap = true,
} ) => {
const blockClassName = classNames( 'ppcp-r-settings-block', className, {
'ppcp--no-gap': ! separatorAndGap,
'ppcp--horizontal': horizontalLayout,
} );
return (
<div className={ blockClassName }>
<BlockTitle
blockTitle={ title }
blockSuffix={ titleSuffix }
blockDescription={ description }
/>
<Content asCard={ false }>{ children }</Content>
</div>
);
};
export default SettingsBlock;
const BlockTitle = ( { blockTitle, blockSuffix, blockDescription } ) => {
if ( ! blockTitle && ! blockDescription ) {
return null;
}
return (
<Header>
<Title>
{ blockTitle }
<TitleExtra>{ blockSuffix }</TitleExtra>
</Title>
<Description>{ blockDescription }</Description>
</Header>
);
};