import * as React from "react"; export interface IBreakPoint { /** * If set, the breakpoint is only active if the width of the element is greater than the given value **/ minWidth?: number; /** * If set, the breakpoint is only active if the width of the element is less than or equal to the given value * * Note: this is different than standard CSS @media query behavior to deal with non-integer widths **/ maxWidth?: number; /** * Name of class to apply if breakpoint is active **/ className: string; } export interface IResponsiveViewportProps { /** Name of the tag used to create the wrapper element */ tag?: string; /** Optional class name to apply to wrapper element */ className?: string; /** List of breakpoints */ breakPoints: ReadonlyArray; /** Optional initialWidth to compute initial breakpoints */ initialWidth?: number; /** Optional callback to get a reference to the viewport once mounted */ componentRef?: (ref: IResponsiveViewport) => void; /** Optional callback to render the content, by default */ onRenderContent?: (activeBreakPoints: T[]) => React.ReactNode; } export interface IResponsiveViewport { /** Measure current size and update breakpoints accordingly */ measure(): void; }