ant-design/components/space/Item.tsx
二货机器人 875e190ac7
fix: Space preserve empty dom when children is null (#26389)
* fix: Space additional dom render

* test case
2020-08-25 16:43:52 +08:00

50 lines
992 B
TypeScript

import * as React from 'react';
import { LastIndexContext } from '.';
import { SizeType } from '../config-provider/SizeContext';
const spaceSize = {
small: 8,
middle: 16,
large: 24,
};
export interface ItemProps {
className: string;
children: React.ReactNode;
index: number;
direction?: 'horizontal' | 'vertical';
size?: SizeType | number;
marginDirection: 'marginLeft' | 'marginRight';
}
export default function Item({
className,
direction,
index,
size,
marginDirection,
children,
}: ItemProps) {
const latestIndex = React.useContext(LastIndexContext);
if (children === null || children === undefined) {
return null;
}
return (
<div
className={className}
style={
index >= latestIndex
? {}
: {
[direction === 'vertical' ? 'marginBottom' : marginDirection]:
typeof size === 'string' ? spaceSize[size] : size,
}
}
>
{children}
</div>
);
}