2025-01-10 18:20:00 +01:00
|
|
|
import classNames from 'classnames';
|
2025-01-22 15:30:49 +01:00
|
|
|
import { Description, Header, Title, TitleExtra, Content } from './Elements';
|
2025-01-10 18:20:00 +01:00
|
|
|
|
2025-01-22 15:30:49 +01:00
|
|
|
const SettingsBlock = ( {
|
|
|
|
className,
|
|
|
|
children,
|
|
|
|
title,
|
|
|
|
titleSuffix,
|
|
|
|
description,
|
|
|
|
horizontalLayout = false,
|
|
|
|
separatorAndGap = true,
|
|
|
|
} ) => {
|
2025-01-10 18:29:54 +01:00
|
|
|
const blockClassName = classNames( 'ppcp-r-settings-block', className, {
|
2025-01-22 15:08:14 +01:00
|
|
|
'ppcp--no-gap': ! separatorAndGap,
|
2025-01-22 15:30:49 +01:00
|
|
|
'ppcp--horizontal': horizontalLayout,
|
2025-01-10 18:29:54 +01:00
|
|
|
} );
|
2024-12-08 09:33:49 +01:00
|
|
|
|
2025-01-22 16:07:16 +01:00
|
|
|
return (
|
|
|
|
<div className={ blockClassName }>
|
|
|
|
<BlockTitle
|
|
|
|
blockTitle={ title }
|
|
|
|
blockSuffix={ titleSuffix }
|
|
|
|
blockDescription={ description }
|
|
|
|
/>
|
2025-01-22 15:30:49 +01:00
|
|
|
|
2025-01-22 15:48:11 +01:00
|
|
|
<Content asCard={ false }>{ children }</Content>
|
2025-01-22 15:30:49 +01:00
|
|
|
</div>
|
|
|
|
);
|
2024-12-08 09:33:49 +01:00
|
|
|
};
|
|
|
|
|
|
|
|
export default SettingsBlock;
|
2025-01-27 20:35:54 +01:00
|
|
|
|
|
|
|
const BlockTitle = ( { blockTitle, blockSuffix, blockDescription } ) => {
|
|
|
|
if ( ! blockTitle && ! blockDescription ) {
|
|
|
|
return null;
|
|
|
|
}
|
|
|
|
|
|
|
|
return (
|
|
|
|
<Header>
|
|
|
|
<Title>
|
|
|
|
{ blockTitle }
|
|
|
|
<TitleExtra>{ blockSuffix }</TitleExtra>
|
|
|
|
</Title>
|
|
|
|
<Description>{ blockDescription }</Description>
|
|
|
|
</Header>
|
|
|
|
);
|
|
|
|
};
|