cluedin-widget
Version:
This is the project for creating and managing widgets in CluedIn.
56 lines (46 loc) • 1.73 kB
JSX
import React, { Component } from 'react';
import Widget from '../../core/components/widget.jsx';
import Overlay from '../../core/components/overlay.jsx';
import NoEntities from '../../core/components/noEntities.jsx';
import registry from '../../core/registry';
import config from '../../core/config';
import { connect } from 'react-redux';
import { shouldFetchGenericLastTools } from '../../core/action/tool';
import Tool from './tool.jsx';
import iso from '../../iso';
const collectionHelper = iso.collection;
class LastTool extends Component {
componentWillMount() {
this.props.dispatch( shouldFetchGenericLastTools() );
}
render() {
let content;
let fakeHtml;
let minHeight = 'auto';
const { isFetchingGenericTools, tools, isFake } = this.props;
if ( !isFetchingGenericTools ) {
content = collectionHelper.take( tools, 6 ).map( function( tool ) {
return <Tool key={tool.id} entity={tool}></Tool>;
} );
}
if ( isFake ) {
fakeHtml = (<Overlay><NoEntities entityType="/Tool"></NoEntities></Overlay>);
}
return (
<Widget noScroll={isFake} loading={isFetchingGenericTools} title="Latest Tools" minHeight={minHeight}>
{fakeHtml}
<div className="cluedIn_entity_list">
{content}
</div>
</Widget>
);
}
}
function select( state ) {
return {
tools: state.tool.genericLastTools,
isFetchingGenericTools: state.tool.isFetchingGenericTools,
isFake: state.tool.isFakeGenericTools
};
}
registry.register( 'genericLastTools', connect( select )( LastTool ) );