cluedin-widget
Version:
This is the project for creating and managing widgets in CluedIn.
50 lines (42 loc) • 1.68 kB
JSX
import React, { Component } from 'react';
import registry from '../../../core/registry';
import { shouldFetchSuggestedSearch } from '../../../core/action/entity';
import { connect } from 'react-redux';
import DefaultEntity from '../../../core/components/defaultEntity.jsx';
import Widget from '../../../core/components/generics/widget.jsx';
class EntitySuggestedSearch extends Component {
componentWillMount() {
const { index, search } = this.props;
this.props.dispatch( shouldFetchSuggestedSearch( search, index ) );
}
render() {
const { suggestedSearches, index, search } = this.props;
let contentHtml;
var entities = suggestedSearches[ index ];
let isLoading = false;
let minHeight = 'auto';
if ( entities && entities.length > 0 ) {
contentHtml = <div className="cluedIn_entity_list">
{entities.map( ( entity, i )=> {
return <DefaultEntity entity={entity} key={i}></DefaultEntity>
} )}
</div>
} else if ( entities && entities.length === 0 ) {
contentHtml = (<div className="cluedIn_entity_list">
Currently No Result.
</div>)
} else {
isLoading = true;
minHeight = '200px';
}
return (<Widget loading={isLoading} minHeight={minHeight} title={search.DisplayName}>
{contentHtml}
</Widget>);
}
}
function select( state ) {
return {
suggestedSearches: state.entity.currentSuggestedSearches
};
}
registry.register( 'EntitySuggestedSearch', connect( select )( EntitySuggestedSearch ) );