UNPKG

cluedin-widget

Version:

This is the project for creating and managing widgets in CluedIn.

61 lines (50 loc) 1.88 kB
import React, { Component } from 'react'; import Widget from '../../core/components/widget.jsx'; import Loading from '../../core/components/loading.jsx'; import registry from '../../core/registry'; import config from '../../core/config'; import { connect } from 'react-redux'; import {shouldFetchGenericLastIssuesIfNeeded} from '../../core/action/issue'; import Issue from './issue.jsx'; import iso from '../../iso'; import Overlay from '../../core/components/overlay.jsx'; import NoEntities from '../../core/components/noEntities.jsx'; const collectionHelper = iso.collection; class OnBoarding extends Component { componentWillMount() { this.props.dispatch( shouldFetchGenericLastIssuesIfNeeded() ); } render() { let content; let fakeHtml; let minHeight = 'auto'; const { isFetchingGenericIssues, issues, isFake } = this.props; if ( isFetchingGenericIssues ) { content = (<Loading></Loading>); minHeight = '200px'; } else { content = collectionHelper.take( issues, 5 ).map( function( issue ) { return <Issue key={issue.id} entity={issue}></Issue>; } ); } if ( isFake ) { fakeHtml = (<Overlay><NoEntities entityType="/Issue"></NoEntities></Overlay>); } return ( <Widget title="Latest Issues" minHeight={minHeight}> {fakeHtml} <div className="cluedIn_entity_list"> {content} </div> </Widget> ); } } function select( state ) { return { issues: state.issue.genericLastIssues, isFetchingGenericIssues: state.issue.isFetchingGenericIssues, isFake: state.issue.isFakeGenericIssues }; } registry.register( 'genericLastIssue', connect( select )( OnBoarding ) );