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

import { connect } from 'react-redux'
import { fetchGenericLastDeals } from '../../core/action/deal'

class LastDeals extends Component {

    componentWillMount() {
        this.fetch();
    }

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

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

        let entityType = '/Sales/Deal';

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

function select( state ) {
    return {
        entities: state.deal.genericLastDeals,
        isFetching: state.deal.isFetchingGenericDeals,
        isFake: state.deal.isFakeGenericDeals,
        nextPageNumber: state.deal.nextPageNumber
    };
}

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