in src/container/FluxContainer.js [249:277]
function createFunctional<Props, State, A, B>(
viewFn: (props: State) => React.Element<State>,
getStores: (props?: ?Props, context?: any) => Array<FluxStore>,
calculateState: (prevState?: ?State, props?: ?Props, context?: any) => State,
options?: Options,
): ReactClass<Props> {
class FunctionalContainer extends Component<void, Props, State> {
state: State;
static getStores(props?: ?Props, context?: any): Array<FluxStore> {
return getStores(props, context);
}
static calculateState(
prevState?: ?State,
props?: ?Props,
context?: any,
): State {
return calculateState(prevState, props, context);
}
render(): React.Element<State> {
return viewFn(this.state);
}
}
// Update the name of the component before creating the container.
const viewFnName = viewFn.displayName || viewFn.name || 'FunctionalContainer';
FunctionalContainer.displayName = viewFnName;
return create(FunctionalContainer, options);
}