UNPKG

react-to-print

Version:

Print React components in the browser

52 lines (51 loc) 1.79 kB
import * as React from "react"; export interface IPrintContextProps { handlePrint: () => void; } export declare const PrintContextConsumer: React.Consumer<IPrintContextProps> | (() => null); export interface ITriggerProps<T> { onClick: () => void; ref: (v: T) => void; } declare type Font = { family: string; source: string; }; declare type PropertyFunction<T> = () => T; export interface IReactToPrintProps { bodyClass?: string; content: () => React.ReactInstance | null; copyStyles?: boolean; documentTitle?: string; fonts?: Font[]; onAfterPrint?: () => void; onBeforeGetContent?: () => void | Promise<any>; onBeforePrint?: () => void | Promise<any>; onPrintError?: (errorLocation: "onBeforeGetContent" | "onBeforePrint" | "print", error: Error) => void; pageStyle?: string | PropertyFunction<string>; print?: (target: HTMLIFrameElement) => Promise<any>; removeAfterPrint?: boolean; suppressErrors?: boolean; trigger?: <T>() => React.ReactElement<ITriggerProps<T>>; } export default class ReactToPrint extends React.Component<IReactToPrintProps> { private linkTotal; private linksLoaded; private linksErrored; private fontsLoaded; private fontsErrored; static defaultProps: { copyStyles: boolean; pageStyle: string; removeAfterPrint: boolean; suppressErrors: boolean; }; startPrint: (target: HTMLIFrameElement) => void; triggerPrint: (target: HTMLIFrameElement) => void; handleClick: () => void; handlePrint: () => void; handleRemoveIframe: () => void; render(): JSX.Element | null; } export declare const useReactToPrint: ((props: IReactToPrintProps) => () => void) | ((props: IReactToPrintProps) => undefined); export {};