react-column-gallery
Version:
An React Column Gallery in react.
35 lines (34 loc) • 1.26 kB
TypeScript
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;