Files
ant-design/components/splitter/Panel.tsx
lijianan 19137493b4 perf: uninstall classnames, install clsx (#55164)
* refactor: uninstall classnames & install clsx

* refactor: uninstall classnames & install clsx

* test: rename test fn

* test: update snap

* update

* update

* update

* update

* update snap

* update

* update

---------

Signed-off-by: lijianan <574980606@qq.com>
Co-authored-by: thinkasany <480968828@qq.com>
2025-10-01 00:45:54 +08:00

43 lines
962 B
TypeScript

import React, { forwardRef } from 'react';
import { clsx } from 'clsx';
import type { InternalPanelProps, PanelProps } from './interface';
export const InternalPanel = forwardRef<
HTMLDivElement,
React.PropsWithChildren<InternalPanelProps>
>((props, ref) => {
const { prefixCls, className, children, size, style = {} } = props;
const panelClassName = clsx(
`${prefixCls}-panel`,
{ [`${prefixCls}-panel-hidden`]: size === 0 },
className,
);
const hasSize = size !== undefined;
return (
<div
ref={ref}
className={panelClassName}
style={{
...style,
// Use auto when start from ssr
flexBasis: hasSize ? size : 'auto',
flexGrow: hasSize ? 0 : 1,
}}
>
{children}
</div>
);
});
if (process.env.NODE_ENV !== 'production') {
InternalPanel.displayName = 'Panel';
}
const Panel: React.FC<React.PropsWithChildren<PanelProps>> = () => null;
export default Panel;