UNPKG

cluedin-widget

Version:

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

120 lines (102 loc) 4.62 kB
import React, { Component } from 'react'; import config from '../../config'; import { FormattedHTMLMessage } from 'react-intl'; const locationHelper = config.location; const providerCrm = locationHelper.goToAppProvider( 'CRM' ); const taskUrl = locationHelper.goToAppProvider( 'TASK' ); const providerSupport = locationHelper.goToAppProvider( 'SUPPORT' ); const cloudFileLink = locationHelper.goToAppProvider( 'CLOUDFILE' ); const defaultLocation = locationHelper.goToAppProvider(); const adminLink = locationHelper.goToSeeAdministratorLinkPage(); class NoEntityMessage extends Component { render() { const { messageId, actionId, link } = this.props; let actionContent; let values = { adminLink }; if ( actionId ) { actionContent = (<div className="cluedIn_noEntities_action"> <a className="cluedIn_btn cluedIn_btn-primary" href={link}> <FormattedHTMLMessage id={actionId}/> </a> </div>); } return (<div className="cluedIn_noEntities"> <div className="cluedIn_noEntities_text"> <FormattedHTMLMessage id={messageId} values={values}/> </div> {actionContent} </div>); } } export default class NoEntities extends Component { getCRMAdminContent() { return <NoEntityMessage messageId="NoEntities.CRMAddMoreIntegrationAdmin" actionId="NoEntities.CRMAddMoreIntegrationActionAdmin" link={providerCrm}></NoEntityMessage>; } getTaskAdminContent() { return <NoEntityMessage messageId="NoEntities.TaskAddMoreIntegrationAdmin" actionId="NoEntities.TaskAddMoreIntegrationActionAdmin" link={taskUrl}></NoEntityMessage>; } getIssueAdminContent() { return <NoEntityMessage messageId="NoEntities.SupportAddMoreIntegrationAdmin" actionId="NoEntities.SupportAddMoreIntegrationActionAdmin" link={providerSupport}></NoEntityMessage>; } getCloudAdminContent() { return <NoEntityMessage messageId="NoEntities.CloudFileAddMoreIntegrationAdmin" actionId="NoEntities.CloudFileAddMoreIntegrationActionAdmin" link={cloudFileLink}></NoEntityMessage>; } getDefaultAdminContent() { return <NoEntityMessage messageId="NoEntities.GenericAddMoreIntegrationAdmin" actionId="NoEntities.GenericAddMoreIntegrationActionAdmin" link={defaultLocation}></NoEntityMessage>; } getCRMContent() { return <NoEntityMessage messageId="NoEntities.CRMAddMoreIntegration" link={providerCrm}></NoEntityMessage>; } getTaskContent() { return <NoEntityMessage messageId="NoEntities.TaskAddMoreIntegration" link={taskUrl}></NoEntityMessage>; } getIssueContent() { return <NoEntityMessage messageId="NoEntities.SupportAddMoreIntegration" link={providerSupport}></NoEntityMessage>; } getCloudContent() { return <NoEntityMessage messageId="NoEntities.CloudFileAddMoreIntegration" link={cloudFileLink}></NoEntityMessage>; } getDefaultContent() { return <NoEntityMessage messageId="NoEntities.GenericAddMoreIntegration" link={defaultLocation}></NoEntityMessage>; } render() { const { entityType, isAdmin } = this.props; let html; switch( entityType ) { case '/Sales/Deal': html = isAdmin ? this.getCRMAdminContent() : this.getCRMContent(); break; case '/Task': html = isAdmin ? this.getTaskAdminContent() : this.getTaskContent(); break; case '/Organization': html = isAdmin ? this.getCRMAdminContent() : this.getCRMContent(); break; case '/Issue': html = isAdmin ? this.getIssueAdminContent() : this.getIssueContent(); break; case '/Document/Document': html = isAdmin ? this.getCloudAdminContent() : this.getCloudContent(); break; default: html = isAdmin ? this.getDefaultAdminContent() : this.getDefaultContent(); break; } return html; } };