antd
Version:
An enterprise-class UI design language and React components implementation
47 lines (46 loc) • 1.75 kB
TypeScript
import * as React from 'react';
import type { CSSProperties } from 'react';
import type { GenerateSemantic } from '../_util/hooks/useMergeSemantic/semanticType';
import type { Breakpoint } from '../_util/responsiveObserver';
import type { RowProps } from '../grid';
import type { MasonryItemType } from './MasonryItem';
export type Gap = number | undefined;
export type Key = string | number;
export type MasonrySemanticType = {
classNames?: {
root?: string;
item?: string;
};
styles?: {
root?: React.CSSProperties;
item?: React.CSSProperties;
};
};
export type MasonrySemanticAllType = GenerateSemantic<MasonrySemanticType, MasonryProps>;
export interface MasonryProps<ItemDataType = any> {
prefixCls?: string;
className?: string;
rootClassName?: string;
style?: CSSProperties;
classNames?: MasonrySemanticAllType['classNamesAndFn'];
styles?: MasonrySemanticAllType['stylesAndFn'];
/** Spacing between items */
gutter?: RowProps['gutter'];
items?: MasonryItemType<ItemDataType>[];
itemRender?: (itemInfo: MasonryItemType<ItemDataType> & {
index: number;
}) => React.ReactNode;
/** Number of columns in the masonry grid layout */
columns?: number | Partial<Record<Breakpoint, number>>;
/** Trigger when item layout order changed */
onLayoutChange?: (sortInfo: {
key: React.Key;
column: number;
}[]) => void;
fresh?: boolean;
}
export interface MasonryRef {
nativeElement: HTMLDivElement;
}
declare const _default: (<ItemDataType = any>(props: React.PropsWithChildren<MasonryProps<ItemDataType>> & React.RefAttributes<MasonryRef>) => React.ReactElement) & Pick<React.FC, "displayName">;
export default _default;