/** * External dependencies. */ import classnames from 'classnames'; import Columns from './column-wrap'; import icons from './icons'; import Inspector from './inspector'; import columnLayouts from './column-layouts'; import memoize from 'memize'; import map from 'lodash/map'; import _times from 'lodash/times'; /** * WordPress dependencies. */ const { __ } = wp.i18n; const { Component, Fragment } = wp.element; const { compose } = wp.compose; const { BlockControls, BlockAlignmentToolbar, InnerBlocks, withColors, } = wp.editor; const { Placeholder, ButtonGroup, Tooltip, Button, } = wp.components; /* Set allowed blocks and media. */ const ALLOWED_BLOCKS = [ 'atomic-blocks/ab-column' ]; /* Get the column template. */ const getLayoutTemplate = memoize( ( columns ) => { return _times( columns, () => [ 'atomic-blocks/ab-column' ] ); } ); class Edit extends Component { constructor( props ) { super( ...arguments ); this.state = { selectLayout: true, } } render() { const { attributes, setAttributes, } = this.props; let selectedRows = 1; if ( attributes.columns ) { selectedRows = parseInt( attributes.columns.toString().split('-') ); } const columnOptions = [ { name: __( '1 Column', 'atomic-blocks' ), key: 'one-column', columns: 1, icon: icons.oneEqual, }, { name: __( '2 Columns', 'atomic-blocks' ), key: 'two-column', columns: 2, icon: icons.twoEqual }, { name: __( '3 Columns', 'atomic-blocks' ), key: 'three-column', columns: 3, icon:icons.threeEqual }, { name: __( '4 Columns', 'atomic-blocks' ), key: 'four-column', columns: 4, icon: icons.fourEqual }, { name: __( '5 Columns', 'atomic-blocks' ), key: 'five-column', columns: 5, icon: icons.fiveEqual, }, { name: __( '6 Columns', 'atomic-blocks' ), key: 'six-column', columns: 6, icon: icons.sixEqual, }, ]; /* Show the layout placeholder. */ if ( ! attributes.layout && this.state.selectLayout ) { return [ { ! attributes.columns ? { map( columnOptions, ( { name, key, icon, columns } ) => ( { setAttributes( { columns: columns, layout: columns === 1 || columns === 5 || columns === 6 ? key : null, } ); { columns === 1 && this.setState( { 'selectLayout' : false } ); } } } > { icon } ) ) } : { map( columnLayouts[ selectedRows ], ( { name, key, icon } ) => ( { setAttributes( { layout: key, } ); this.setState( { 'selectLayout' : false } ); } } > { icon } ) ) } { setAttributes( { columns: null, } ); this.setState( { 'selectLayout' : true } ); } } > { __( 'Return to Column Selection', 'atomic-blocks' ) } } ]; } return [ setAttributes( { align } ) } controls={ [ 'center', 'wide', 'full' ] } /> , , ]; } } export default compose( [ withColors( 'backgroundColor', { textColor: 'color' }, ), ] )( Edit );