import React, { Component } from 'react'
import registry from '../../core/registry'
import EntityListWidget from '../../core/components/entityRelated/EntityListWidget.jsx';

import { connect } from 'react-redux'
import { fetchGenericLastDocuments } from '../../core/action/document';

class LastDocuments extends Component {

    componentWillMount() {
        this.fetch();
    }

    fetch( pageNumber ) {
        const { entityId } = this.props;

        this.props.dispatch( fetchGenericLastDocuments( pageNumber, entityId ) );
    }

    render() {
        const { isFetching, entities, isAdmin, layoutInformation, isFake, nextPageNumber } = this.props;

        let entityType = '/Document';

        return (<EntityListWidget widgetName={this.constructor.name}
                                  layoutInformation={layoutInformation}
                                  title="Latest Documents"
                                  fetch={this.fetch.bind(this)}
                                  entities={entities}
                                  isFetching={isFetching}
                                  isAdmin={isAdmin}
                                  entityType={entityType}
                                  nextPageNumber={nextPageNumber}
                                  isFake={isFake}></EntityListWidget>);
    }
}

function select( state ) {
    return {
        entities: state.document.genericLastDocuments,
        nextPageNumber: state.document.nextPageNumber,
        isFetching: state.document.isFetchingGenericDocuments,
        isFake: state.document.isFakeGenericDocuments
    };
}

registry.register( 'LastDocuments', connect( select )( LastDocuments ) );