UNPKG

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.

102 lines (90 loc) 3.22 kB
import React, { Component } from 'react'; import { register } from '../../../core/registry'; import { connect } from 'react-redux'; import FollowWidget from '../../../core/components/entityRelated/FollowWidget.jsx'; import EntityIcon from '../../../core/components/entityRelated/EntityIcon.jsx'; import EntityHeaderDetails from '../../../core/components/entityRelated/EntityHeaderDetails.jsx'; import Loading from '../../../core/components/generics/loading.jsx'; import RaisedButton from 'material-ui/RaisedButton'; class EntityHeader extends Component { render() { let content; let descriptionContent; let viewOriginalContent; let viewOriginLink; let editOriginalContent; let viewOriginalStyle = { float: 'right', marginRight: '15px', marginTop: '17px', }; let wrapperTitleStyle = {}; const { isFetchingEntity, entity, hideDescription } = this.props; if (isFetchingEntity) { let loadingStyle = { height: '150px' }; return <div className="cluedIn_entityHeader" style={loadingStyle}><Loading></Loading></div> } else { if (entity.data.uri) { // temporary HACK - replace + signs for %20 in links to original resource viewOriginalContent = ( <div style={viewOriginalStyle}> <a target="__blank" href={entity.data.uri}> <RaisedButton label="View Original"/> </a> </div>); viewOriginLink = ( <a target="__blank" href={entity.data.uri}> {entity.data.uri} </a> ); wrapperTitleStyle.padding = 0; } if (entity.editUrl) { editOriginalContent = ( <div style={viewOriginalStyle}> <a target="__blank" href={entity.editUrl}> <RaisedButton label="Edit Original"/> </a> </div>); } if (entity.showDescription && (!hideDescription)) { descriptionContent = (<div className="cluedIn_entityHeader_description"> {entity.data.description} </div>); } content = ( <div className="cluedIn_entityHeader"> <div className="cluedIn_row"> <div className="cluedIn_col s12"> <FollowWidget entity={entity}/> {editOriginalContent} <div className="cluedIn_NameWithEntityIcon cluedIn_flex"> <EntityIcon entityType={entity.data.entityType}/> <div style={wrapperTitleStyle} className="cluedIn_entityHeader_title"> <div className="cluedIn_entityHeader_title_span">{entity.name}</div> <div className="cluedIn_entityHeader_title_viewOriginal"> <span>{viewOriginLink}</span> </div> </div> </div> {descriptionContent} </div> </div> <EntityHeaderDetails entity={entity}/> </div> ); } return ( <div>{content}</div> ); } } function select(state) { return { entity: state.entity.selectedEntity, isFetchingEntity: state.entity.isFetchingEntity, }; } register('EntityHeader', connect(select)(EntityHeader));