cluedin-widget
Version: 
This is the project for creating and managing widgets in CluedIn.
67 lines (55 loc) • 2.42 kB
JSX
import React, { Component } from 'react';
import Widget from '../../../core/components/generics/widget.jsx';
import Overlay from '../../../core/components/generics/overlay.jsx';
import registry from '../../../core/registry';
import config from '../../../core/config';
import { connect } from 'react-redux';
import { shouldFetchEntityIfNeeded } from '../../../core/action/entity';
import iso from '../../../iso';
import ProviderIcons from '../../../core/components/entityRelated/providerIcons.jsx'
const collectionHelper = iso.collection;
class EntitySourceAndProfile extends Component {
    componentWillMount() {
        //this.props.dispatch( shouldFetchEntityIfNeeded( 'xxx-x-x-xx-' ) );
    }
    render() {
        let content;
        let minHeight = 'auto';
        let loading   = false;
        const { isFetchingEntity, entity } = this.props;
        loading = isFetchingEntity;
        var providers = entity ? entity.providers.map( function( provider ) {
            return { name: provider, url: '', providers: [ provider ] }
        } ) : [];
        return (
            <Widget loading={loading} title="Sources & Profiles" minHeight={minHeight}>
                <div className="cluedIn_entity_list_flex">
                    <ul>
                        {
                            providers.map( ( provider, index ) => {
                                let providerContent;
                                if ( provider.url ) {
                                    providerContent = (<a href={provider.url}>{provider.name}</a>);
                                } else {
                                    providerContent = provider.name
                                }
                                return (
                                    <li key={index}>
                                        <ProviderIcons providers={provider.providers}></ProviderIcons>
                                        <div className="cluedIn_name">{providerContent}</div>
                                    </li>)
                            } )
                        }
                    </ul>
                </div>
            </Widget>
        );
    }
}
function select( state ) {
    return {
        entity: state.entity.selectedEntity,
        isFetchingEntity: state.entity.isFetchingEntity
    };
}
registry.register( 'EntitySourceAndProfile', connect( select )( EntitySourceAndProfile ) );