Skip to content

Commit

Permalink
Improve modularization
Browse files Browse the repository at this point in the history
  • Loading branch information
silviubogan committed Oct 9, 2020
1 parent 69eaf73 commit 1bde90d
Show file tree
Hide file tree
Showing 2 changed files with 26 additions and 8 deletions.
20 changes: 12 additions & 8 deletions src/ColumnsBlock/ColumnsBlockEdit.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,14 @@ import { Button } from 'semantic-ui-react';
import { blocks } from '~/config';

import { ColumnsBlockSchema } from './schema';
import { getColumns, empty, defaultNewColumn } from './utils';
import {
getColumns,
empty,
defaultNewColumn,
hasColumns,
forEachColumn,
columnIsEmpty,
} from './utils';
import ColumnVariations from './ColumnVariations';
import EditBlockWrapper from './EditBlockWrapper';

Expand Down Expand Up @@ -152,20 +159,17 @@ class ColumnsBlockEdit extends React.Component {
}

// fill empty columns
if (this.props.data.data?.blocks) {
for (const colId in this.props.data.data?.blocks) {
if (
this.props.data.data?.blocks[colId].blocks_layout.items.length === 0
) {
if (hasColumns(this.props.data.data)) {
forEachColumn(this.props.data.data, ([colId, colData]) => {
if (columnIsEmpty(colData)) {
const newCol = defaultNewColumn();

const fd = clone(this.props.properties);
fd.blocks[this.props.block].data.blocks[colId] = newCol;

this.props.onChangeField('blocks', fd.blocks);
this.props.onChangeField('blocks_layout', fd.blocks_layout);
}
}
});
}
}

Expand Down
14 changes: 14 additions & 0 deletions src/ColumnsBlock/utils.js
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,20 @@ export const getColumns = (data) => {
]);
};

export const hasColumns = (data) => {
return typeof data !== 'undefined'
? data.blocks_layout.items.length > 0
: false;
};

export const forEachColumn = (data, callback) => {
getColumns(data).forEach(callback);
};

export const columnIsEmpty = (colData) => {
return colData.blocks_layout.items.length === 0;
};

export const empty = (count) => {
const blocks = {};
const items = [];
Expand Down

0 comments on commit 1bde90d

Please sign in to comment.