40 lines
784 B
JavaScript
40 lines
784 B
JavaScript
![]() |
import React, { Component } from 'react';
|
||
|
import PropTypes from 'prop-types';
|
||
|
|
||
|
import ns from './ns.json';
|
||
|
import Block from './Block.jsx';
|
||
|
|
||
|
const propTypes = {
|
||
|
blocks: PropTypes.array.isRequired
|
||
|
};
|
||
|
|
||
|
export default class Blocks extends Component {
|
||
|
shouldComponentUpdate(nextProps) {
|
||
|
return this.props.blocks !== nextProps.blocks;
|
||
|
}
|
||
|
|
||
|
render() {
|
||
|
const {
|
||
|
blocks
|
||
|
} = this.props;
|
||
|
if (blocks.length <= 0) {
|
||
|
return null;
|
||
|
}
|
||
|
return (
|
||
|
<div className={ `${ns}-accordion-block` }>
|
||
|
{
|
||
|
blocks.map(dashedName => (
|
||
|
<Block
|
||
|
dashedName={ dashedName }
|
||
|
key={ dashedName }
|
||
|
/>
|
||
|
))
|
||
|
}
|
||
|
</div>
|
||
|
);
|
||
|
}
|
||
|
}
|
||
|
|
||
|
Blocks.displayName = 'Blocks';
|
||
|
Blocks.propTypes = propTypes;
|