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

import { connect } from 'react-redux'
import { fetchGenericLastIssues } from '../../core/action/issue'

class LastIssues extends Component {

    componentWillMount() {
        this.fetch();
    }

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

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

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

        let entityType = '/Issue';

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

function select( state ) {
    return {
        entities: state.issue.genericLastIssues,
        nextPageNumber: state.issue.nextPageNumber,
        isFetching: state.issue.isFetchingGenericIssues,
        isFake: state.issue.isFakeGenericIssues
    };
}

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