UNPKG

antd

Version:

An enterprise-class UI design language and React components implementation

42 lines (41 loc) 1.06 kB
"use client"; import React, { useMemo } from 'react'; import ResizeObserver from '@rc-component/resize-observer'; import { clsx } from 'clsx'; const MasonryItem = /*#__PURE__*/React.forwardRef((props, ref) => { const { item, style, prefixCls, itemRender, className, index, column, onResize } = props; const itemPrefix = `${prefixCls}-item`; // ====================== Render ====================== const renderNode = useMemo(() => { return item.children ?? itemRender?.({ ...item, index, column }); }, [item, itemRender, column, index]); let returnNode = /*#__PURE__*/React.createElement("div", { ref: ref, style: style, className: clsx(itemPrefix, className) }, renderNode); // Listen for resize if (onResize) { returnNode = /*#__PURE__*/React.createElement(ResizeObserver, { onResize: onResize }, returnNode); } return returnNode; }); if (process.env.NODE_ENV !== 'production') { MasonryItem.displayName = 'MasonryItem'; } export default MasonryItem;