UNPKG

1.37 kBJavaScriptView Raw
1/**
2* This source code is quoted from rc-tabs.
3* homepage: https://github.com/react-component/tabs
4*/
5import React,{Component} from "react";
6import PropTypes from "prop-types";
7import classnames from "classnames";
8import createClass from 'create-react-class';
9
10const propTypes = {
11 className: PropTypes.string,
12 active: PropTypes.bool,
13 style: PropTypes.any,
14 destroyInactiveTabPane: PropTypes.bool,
15 forceRender: PropTypes.bool,
16 placeholder: PropTypes.node
17};
18const defaultProps = {
19 placeholder: null
20};
21class TabPane extends Component {
22 render() {
23 const props = this.props;
24 const { className, destroyInactiveTabPane, active, forceRender } = props;
25 this._isActived = this._isActived || active;
26 const clsPrefix = `${props.rootclsPrefix}-tabpane`;
27 const cls = classnames({
28 [clsPrefix]: 1,
29 [`${clsPrefix}-inactive`]: !active,
30 [`${clsPrefix}-active`]: active,
31 [className]: className
32 });
33 const isRender = destroyInactiveTabPane ? active : this._isActived;
34 return (
35 <div
36 style={props.style}
37 role="tabpanel"
38 aria-hidden={props.active ? "false" : "true"}
39 className={cls}
40 >
41 {isRender || forceRender ? props.children : props.placeholder}
42 </div>
43 );
44 }
45}
46TabPane.propTypes = propTypes;
47TabPane.defaultProps = defaultProps;
48
49export default TabPane;