Add components for different grid layouts
[MAILPOET-2774]
This commit is contained in:
27
assets/js/src/common/grid/column.tsx
Normal file
27
assets/js/src/common/grid/column.tsx
Normal file
@ -0,0 +1,27 @@
|
||||
import React from 'react';
|
||||
import classnames from 'classnames';
|
||||
|
||||
type Props = {
|
||||
children?: React.ReactNode,
|
||||
dimension?: 'small',
|
||||
};
|
||||
|
||||
const Column = ({
|
||||
children,
|
||||
dimension,
|
||||
}: Props) => (
|
||||
<div
|
||||
className={
|
||||
classnames(
|
||||
'mailpoet-grid-column',
|
||||
{
|
||||
[`mailpoet-grid-column-${dimension}`]: dimension,
|
||||
}
|
||||
)
|
||||
}
|
||||
>
|
||||
{children}
|
||||
</div>
|
||||
);
|
||||
|
||||
export default Column;
|
13
assets/js/src/common/grid/index.tsx
Normal file
13
assets/js/src/common/grid/index.tsx
Normal file
@ -0,0 +1,13 @@
|
||||
import Column from './column';
|
||||
import TwoColumns from './two_columns';
|
||||
import TwoColumnsList from './two_columns_list';
|
||||
import ThreeColumns from './three_columns';
|
||||
import SpaceBetween from './space_between';
|
||||
|
||||
export default {
|
||||
Column,
|
||||
TwoColumns,
|
||||
TwoColumnsList,
|
||||
ThreeColumns,
|
||||
SpaceBetween,
|
||||
};
|
27
assets/js/src/common/grid/space_between.tsx
Normal file
27
assets/js/src/common/grid/space_between.tsx
Normal file
@ -0,0 +1,27 @@
|
||||
import React from 'react';
|
||||
import classnames from 'classnames';
|
||||
|
||||
type Props = {
|
||||
children?: React.ReactNode,
|
||||
verticalAlign?: 'center',
|
||||
};
|
||||
|
||||
const SpaceBetween = ({
|
||||
children,
|
||||
verticalAlign,
|
||||
}: Props) => (
|
||||
<div
|
||||
className={
|
||||
classnames(
|
||||
'mailpoet-grid-space-between',
|
||||
{
|
||||
[`mailpoet-grid-space-between-vertical-${verticalAlign}`]: verticalAlign,
|
||||
}
|
||||
)
|
||||
}
|
||||
>
|
||||
{children}
|
||||
</div>
|
||||
);
|
||||
|
||||
export default SpaceBetween;
|
13
assets/js/src/common/grid/three_columns.tsx
Normal file
13
assets/js/src/common/grid/three_columns.tsx
Normal file
@ -0,0 +1,13 @@
|
||||
import React from 'react';
|
||||
|
||||
type Props = {
|
||||
children?: React.ReactNode,
|
||||
};
|
||||
|
||||
const ThreeColumns = ({ children }: Props) => (
|
||||
<div className="mailpoet-grid-three-columns">
|
||||
{children}
|
||||
</div>
|
||||
);
|
||||
|
||||
export default ThreeColumns;
|
13
assets/js/src/common/grid/two_columns.tsx
Normal file
13
assets/js/src/common/grid/two_columns.tsx
Normal file
@ -0,0 +1,13 @@
|
||||
import React from 'react';
|
||||
|
||||
type Props = {
|
||||
children?: React.ReactNode,
|
||||
};
|
||||
|
||||
const TwoColumns = ({ children }: Props) => (
|
||||
<div className="mailpoet-grid-two-columns">
|
||||
{children}
|
||||
</div>
|
||||
);
|
||||
|
||||
export default TwoColumns;
|
13
assets/js/src/common/grid/two_columns_list.tsx
Normal file
13
assets/js/src/common/grid/two_columns_list.tsx
Normal file
@ -0,0 +1,13 @@
|
||||
import React from 'react';
|
||||
|
||||
type Props = {
|
||||
children?: React.ReactNode,
|
||||
};
|
||||
|
||||
const TwoColumnsList = ({ children }: Props) => (
|
||||
<div className="mailpoet-grid-two-columns-list">
|
||||
{children}
|
||||
</div>
|
||||
);
|
||||
|
||||
export default TwoColumnsList;
|
Reference in New Issue
Block a user