opds-web-client
Version:
70 lines (69 loc) • 2.92 kB
TypeScript
import * as React from "react";
import { Store } from "redux";
import { State } from "../state";
import { ComputeBreadcrumbs } from "./Breadcrumbs";
import { CollectionData, BookData, StateProps, NavigateContext, AuthCallback, AuthProvider, AuthMethod, AuthCredentials } from "../interfaces";
import AuthPlugin from "../AuthPlugin";
export interface HeaderProps extends React.Props<any> {
collectionTitle: string;
bookTitle: string;
loansUrl?: string;
isSignedIn: boolean;
fetchLoans?: (url: string) => Promise<CollectionData>;
clearAuthCredentials: () => void;
}
export interface FooterProps extends React.Props<any> {
collection: CollectionData;
}
export interface BookDetailsContainerProps extends React.Props<any> {
bookUrl: string;
collectionUrl: string;
refreshCatalog: () => Promise<any>;
book: BookData;
}
export interface RootProps extends StateProps {
store?: Store<State>;
authPlugins?: AuthPlugin[];
collectionUrl?: string;
bookUrl?: string;
proxyUrl?: string;
dispatch?: any;
setCollectionAndBook?: (collectionUrl: string, bookUrl: string) => Promise<any>;
clearCollection?: () => void;
clearBook?: () => void;
fetchSearchDescription?: (url: string) => void;
closeError?: () => void;
fetchBook?: (bookUrl: string) => Promise<BookData>;
refreshCollectionAndBook?: () => Promise<any>;
retryCollectionAndBook?: () => Promise<any>;
pageTitleTemplate?: (collectionTitle: string, bookTitle: string) => string;
headerTitle?: string;
fetchPage?: (url: string) => Promise<CollectionData>;
Header?: new () => __React.Component<HeaderProps, any>;
Footer?: new () => __React.Component<FooterProps, any>;
BookDetailsContainer?: new () => __React.Component<BookDetailsContainerProps, any>;
computeBreadcrumbs?: ComputeBreadcrumbs;
updateBook?: (url: string) => Promise<BookData>;
fulfillBook?: (url: string) => Promise<Blob>;
indirectFulfillBook?: (url: string, type: string) => Promise<string>;
fetchLoans?: (url: string) => Promise<CollectionData>;
saveAuthCredentials?: (credentials: AuthCredentials) => void;
clearAuthCredentials?: () => void;
showAuthForm?: (callback: AuthCallback, providers: AuthProvider<AuthMethod>[], title: string) => void;
closeErrorAndHideAuthForm?: () => void;
}
export declare class Root extends React.Component<RootProps, any> {
context: NavigateContext;
static contextTypes: React.ValidationMap<RootProps>;
constructor(props: any);
render(): JSX.Element;
componentWillMount(): Promise<void>;
componentWillReceiveProps(nextProps: RootProps): void;
updatePageTitle(props: any): void;
showPrevBook(): void;
showNextBook(): void;
showRelativeBook(relativeIndex: number): void;
loanedBookData(): BookData;
}
declare const ConnectedRoot: React.ComponentClass<any>;
export default ConnectedRoot;