UNPKG

@chalkbooks/react-doc-viewer

Version:
67 lines (66 loc) 1.99 kB
import { FC, ReactElement, ComponentType, PropsWithChildren } from "react"; import { ThemedStyledProps } from "styled-components"; import { IMainState } from "./store/mainStateReducer"; import { FileLoaderFunction } from "./utils/fileLoaders"; export interface IConfig { header?: IHeaderConfig; loadingRenderer?: ILoadingRendererConfig; noRenderer?: INoRendererConfig; csvDelimiter?: string; pdfZoom?: IPdfZoomConfig; pdfVerticalScrollByDefault?: boolean; } export interface ILoadingRendererConfig { overrideComponent?: ComponentType<{ document: IDocument | undefined; fileName: string; }>; showLoadingTimeout?: false | number; } export interface INoRendererConfig { overrideComponent?: ComponentType<{ document: IDocument | undefined; fileName: string; }>; } export interface IHeaderConfig { disableHeader?: boolean; disableFileName?: boolean; retainURLParams?: boolean; overrideComponent?: IHeaderOverride; } export interface IPdfZoomConfig { defaultZoom: number; zoomJump: number; } export type IHeaderOverride = (state: IMainState, previousDocument: () => void, nextDocument: () => void) => ReactElement<any, any> | null; export interface ITheme { primary?: string; secondary?: string; tertiary?: string; textPrimary?: string; textSecondary?: string; textTertiary?: string; disableThemeScrollbar?: boolean; } export interface IStyledProps extends ThemedStyledProps<any, any> { theme: ITheme; } export interface IDocument { uri: string; fileType?: string; fileData?: string | ArrayBuffer; fileName?: string; } export interface DocRendererProps { mainState: IMainState; } export interface DocRenderer extends FC<PropsWithChildren<DocRendererProps>> { fileTypes: string[]; weight: number; fileLoader?: FileLoaderFunction | null | undefined; } export interface DocViewerRef { prev: () => void; next: () => void; }