ant-design-vue/components/vc-collapse/src/PanelContent.jsx

39 lines
974 B
Vue

import PropTypes from '../../_util/vue-types';
export default {
name: 'PanelContent',
props: {
prefixCls: PropTypes.string,
isActive: PropTypes.bool,
destroyInactivePanel: PropTypes.bool,
forceRender: PropTypes.bool,
role: PropTypes.any,
},
data() {
return {
_isActive: undefined,
};
},
render() {
this._isActive = this.forceRender || this._isActive || this.isActive;
if (!this._isActive) {
return null;
}
const { prefixCls, isActive, destroyInactivePanel, forceRender, role } = this.$props;
const { $slots } = this;
const contentCls = {
[`${prefixCls}-content`]: true,
[`${prefixCls}-content-active`]: isActive,
};
const child =
!forceRender && !isActive && destroyInactivePanel ? null : (
<div class={`${prefixCls}-content-box`}>{$slots.default}</div>
);
return (
<div class={contentCls} role={role}>
{child}
</div>
);
},
};