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.
72 lines (63 loc) • 2.27 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 { fetchGenericLastDocuments } from "../../core/action/document";
const entityType = '/Document';
class LastDocuments extends Component {
constructor( props ) {
super( props );
this.state = {
timestamp: Date.now()
};
}
componentWillMount() {
this.fetch();
}
fetch() {
const { entityId } = this.props;
this.props.dispatch( fetchGenericLastDocuments( entityId, this.state.timestamp ) );
}
render() {
const { isFetching, entities, isAdmin, layoutPosition, isFake, pageNumber, lastVisitedDate } = this.props;
return (<EntityListWidget widgetName={this.constructor.name}
layoutPosition={layoutPosition}
title="Latest Documents"
fetch={this.fetch.bind(this)}
entities={entities}
isFetching={isFetching}
isAdmin={isAdmin}
entityType={entityType}
pageNumber={pageNumber}
lastVisitedDate={lastVisitedDate}
isFake={isFake}></EntityListWidget>);
}
}
function select( state ) {
return {
entities: state.document.currentDocuments,
pageNumber: state.document.pageNumber,
isFetching: state.document.isFetchingGenericDocuments,
isFake: state.document.isFakeGenericDocuments
};
}
register( 'LastDocuments', connect( select )( LastDocuments ), {
name: 'LastDocuments',
displayName: 'Latest Documents',
description: 'All the latest documents created/modified in your integrations.',
relatedProviders: [
'dropbox',
'office365',
'googledrive',
'box',
'dropbox',
'slack',
'sharepoint'
],
tags: [
'support',
'sales',
'marketing'
],
requireEntity: false
} );