40 lines
1.0 KiB
JavaScript
40 lines
1.0 KiB
JavaScript
import { clsx } from 'clsx';
|
|
import React from 'react';
|
|
const PanelContent = /*#__PURE__*/React.forwardRef((props, ref) => {
|
|
const {
|
|
prefixCls,
|
|
forceRender,
|
|
className,
|
|
style,
|
|
children,
|
|
isActive,
|
|
role,
|
|
classNames: customizeClassNames,
|
|
styles
|
|
} = props;
|
|
const [rendered, setRendered] = React.useState(isActive || forceRender);
|
|
React.useEffect(() => {
|
|
if (forceRender || isActive) {
|
|
setRendered(true);
|
|
}
|
|
}, [forceRender, isActive]);
|
|
if (!rendered) {
|
|
return null;
|
|
}
|
|
return /*#__PURE__*/React.createElement("div", {
|
|
ref: ref,
|
|
className: clsx(`${prefixCls}-panel`, {
|
|
[`${prefixCls}-panel-active`]: isActive,
|
|
[`${prefixCls}-panel-inactive`]: !isActive
|
|
}, className),
|
|
style: style,
|
|
role: role
|
|
}, /*#__PURE__*/React.createElement("div", {
|
|
className: clsx(`${prefixCls}-body`, customizeClassNames?.body),
|
|
style: styles?.body
|
|
}, children));
|
|
});
|
|
if (process.env.NODE_ENV !== 'production') {
|
|
PanelContent.displayName = 'PanelContent';
|
|
}
|
|
export default PanelContent; |