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

import { connect } from 'react-redux'
import { fetchGenericLastTasks } from '../../core/action/task'

class LastTasks extends Component {

    componentWillMount() {
        this.fetch();
    }

    fetch( pageNumber ) {
        this.props.dispatch( fetchGenericLastTasks( pageNumber ) );
    }

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

        let entityType = '/Task';

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

function select( state ) {
    return {
        entities: state.task.genericLastTasks,
        nextPageNumber: state.task.nextPageNumber,
        isFetching: state.task.isFetchingGenericTasks,
        isFake: state.task.isFakeGenericTasks
    };
}

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