cluedin-widget
Version: 
This project contains all the pages needed for browsing entities and searching them. The aim is to replace the CluedIn.Webapp project with this one when all the pages ( including the Admin page ) will be ported to REACT.
67 lines (57 loc) • 1.87 kB
JSX
import React, { Component } from 'react';
import { register } 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 {
  constructor(props) {
    super(props);
    this.state = {
      timestamp: Date.now(),
    };
  }
  componentWillMount() {
    this.fetch();
  }
  fetch() {
    const { entityId } = this.props;
    this.props.dispatch(fetchGenericLastTasks(entityId, this.state.timestamp));
  }
  render() {
    const { isFetching, entities, isAdmin, layoutPosition, isFake, pageNumber } = this.props;
    let entityType = '/Task';
    return (<EntityListWidget widgetName={this.constructor.name}
                              layoutPosition={layoutPosition}
                              title="Latest Tasks"
                              fetch={this.fetch.bind(this)}
                              entities={entities}
                              isFetching={isFetching}
                              isAdmin={isAdmin}
                              entityType={entityType}
                              pageNumber={pageNumber}
                              isFake={isFake}></EntityListWidget>);
  }
}
function select(state) {
  return {
    entities: state.task.currentTasks,
    pageNumber: state.task.pageNumber,
    isFetching: state.task.isFetchingGenericTasks,
    isFake: state.task.isFakeGenericTasks
  };
}
register('LastTasks', connect(select)(LastTasks), {
  name: 'LastTasks',
  displayName: 'Lastest tasks',
  description: 'All the latest tasks in your project management system.',
  relatedProviders: [
    'trello',
    'asana',
    'teamwork',
    'pivotaltracker'
  ],
  tags: [
    'project managment'
  ],
  requireEntity: false
});