zarm-mobile
Version:
UI for react.js
49 lines (40 loc) • 977 B
JSX
import React, { PureComponent } from 'react';
import PropTypes from 'prop-types';
import classnames from 'classnames';
class TabContainer extends PureComponent {
constructor(props) {
super(props);
this.state = {
selected: props.selected || props.defaultSelected,
};
}
componentWillReceiveProps(nextProps) {
if ('selected' in nextProps) {
this.setState({
selected: !!nextProps.selected,
});
}
}
render() {
const { prefixCls, className, children } = this.props;
const cls = classnames({
[`${prefixCls}`]: true,
[className]: !!className,
active: !!this.state.selected,
});
return (
<div className={cls} role="tabpanel">
{children}
</div>
);
}
}
TabContainer.propTypes = {
prefixCls: PropTypes.string,
className: PropTypes.string,
};
TabContainer.defaultProps = {
prefixCls: 'za-tab-container-item',
className: null,
};
export default TabContainer;