UNPKG

react-column-gallery

Version:
35 lines (34 loc) 1.26 kB
import { ReactNode } from "react"; import "./index.css"; export declare type Photo = { key: string | number; src: string; width: number; height: number; alt: string; loading?: "lazy" | "eager"; }; export declare type ColumnsProvider = (containerWidth: number) => number; export declare type Spacing = number | { horizontal: number; vertical: number; }; export declare type SpacingProvider = (containerWidth: number) => Spacing; export interface GalleryProps { /** photo list */ photos: Photo[]; /** provider column number or column function */ columns?: number | ColumnsProvider; /** vertical or horizontal space provider */ spacing?: Spacing | SpacingProvider; /** For SSR env */ initialContainerWidth?: number; /** customize photo renderer */ renderPhoto?: (photo: Photo, index: number) => ReactNode; /** optional: footer height */ footerHeight?: number; /** optional: customize footer renderer */ renderFooter?: (photo: Photo, index: number) => ReactNode; } declare const Gallery: ({ photos, columns, spacing, initialContainerWidth, footerHeight, renderPhoto, renderFooter, }: GalleryProps) => JSX.Element; export default Gallery;