Files
gpustack-ui/src/components/resize-container/index.tsx
T

36 lines
869 B
TypeScript

import { Col, Row } from 'antd';
import ResizeObserver from 'rc-resize-observer';
import useResponsive from './use-responsive';
interface ResizeObserverContainerProps {
dataList: any[];
renderItem: (data: any) => React.ReactNode;
defaultSpan?: number;
resizable?: boolean;
}
const ResizeContainer: React.FC<ResizeObserverContainerProps> = ({
defaultSpan = 8,
dataList,
renderItem,
resizable = true
}) => {
const { span, handleResize } = useResponsive({ defaultSpan });
return (
<ResizeObserver onResize={handleResize} disabled={!resizable}>
<Row gutter={[16, 16]}>
{dataList.map((item: any, index) => {
return (
<Col span={span} key={item.id || index}>
{renderItem(item)}
</Col>
);
})}
</Row>
</ResizeObserver>
);
};
export default ResizeContainer;