solrkit
Version:
 
38 lines (37 loc) • 1.5 kB
TypeScript
/// <reference types="react" />
import { PaginationData, SearchParams, SolrCore, SolrMoreLikeThis, SolrGet, SolrQuery, SolrTransitions } from './DataStore';
import * as React from 'react';
declare type RenderLambda<T> = (v: T | T[], p?: PaginationData) => JSX.Element;
declare function databind<T>(event: Function, ds: SolrCore<object>, render: RenderLambda<T>, transition?: (sp: SearchParams) => Boolean): () => JSX.Element;
interface DataBoundProps<T> {
autoload?: SearchParams;
event: Function;
dataStore: SolrGet<T> & SolrMoreLikeThis<T> & SolrQuery<T> & SolrTransitions;
render: RenderLambda<T>;
transition?: (params: SearchParams) => Boolean;
}
interface DataBoundState<T> {
data?: T | T[];
paging?: PaginationData;
}
declare class Bound extends React.Component<DataBoundProps<object>, DataBoundState<object>> {
static childContextTypes: {
transition: React.Requireable<any>;
searchState: React.Requireable<any>;
};
static contextTypes: {
router: React.Requireable<any>;
};
constructor(props: DataBoundProps<object>);
transition(args: SearchParams): void;
componentDidMount(): void;
getChildContext(): {
searchState: SearchParams;
transition: any;
};
render(): JSX.Element;
}
declare class DataBind extends React.Component<{}, {}> {
render(): JSX.Element;
}
export { RenderLambda, DataBoundProps, DataBoundState, DataBind, Bound, databind };