import React from 'react'; import classNames from 'classnames'; import { SplitPaneProps } from './split-pane'; import SplitBar, { SplitBarProps } from './split-bar'; import { BaseProps } from '../_utils/props'; import { SplitMode } from './shared-props'; export interface SplitProps extends BaseProps { mode?: SplitMode; children: React.ReactElement; } const Split: React.FC & { Pane?: any } = (props: SplitProps) => { const { prefixCls = 'ty-split', mode = 'horizontal', className, style, children } = props; const cls = classNames(prefixCls, className, { [`${prefixCls}_${mode}`]: mode, }); const childrenCount = React.Children.count(children); return (
{React.Children.map(children, (child, idx) => { const childProps: SplitPaneProps = { style: { ...child.props.style, width: `calc(${100 / childrenCount}%)` }, }; return ( <> {React.cloneElement(child, childProps)} {idx + 1 !== childrenCount && } ); })}
); }; export default Split;