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.
73 lines (58 loc) • 2.61 kB
JSX
import React, { Component } from "react";
import { List, ListItem } from "material-ui/List";
import CluedInMenuItemText from "./items/CluedInMenuItemText";
import CluedInMenuEmptyText from "./items/CluedInMenuEmptyText";
import CluedInViewMoreButton from "./items/CluedInViewMoreButton";
import HearingIcon from "material-ui/svg-icons/av/hearing";
import { menuIcon } from "../../styles";
import iso from "../../../iso";
import { FormattedMessage } from "react-intl";
import SubHeader from "material-ui/Subheader";
const defaultTakeNumber = 5;
const subHeaderStyle = {
textTransform: 'uppercase',
fontSize: '12px',
fontWeight: '800',
textShadow: '0 1px 1px rgba(0, 0, 0, 0.55)',
color: '#C2C2C2',
marginBottom: '-10px'
};
class CluedInSavedSearch extends Component {
onSearchClickHandler( id ) {
const { onSearchClick } = this.props;
onSearchClick( id );
}
render() {
const { bgColor, searches, onViewMoreClick } = this.props;
const headerContent = <div><HearingIcon
style={menuIcon}></HearingIcon><span>{<FormattedMessage
id="CluedInSavedSearch.KeepInTheLoop"></FormattedMessage>}</span>
</div>;
let nbSearchesLeft = (searches && searches.length > 0) ? (searches.length - 5) : 0;
let viewMore = <CluedInViewMoreButton number={nbSearchesLeft}></CluedInViewMoreButton>;
let listContent = <CluedInMenuEmptyText
text={<FormattedMessage id="CluedInSavedSearch.NoSearch"></FormattedMessage>}></CluedInMenuEmptyText>;
let viewMoreContent;
if( searches && searches.length > 0 ) {
listContent = iso.collection.take( searches, defaultTakeNumber ).map( ( search, index ) => {
let textComponent = (<CluedInMenuItemText
query={search.Query}
text={search.Name}
count={search.Count}></CluedInMenuItemText>);
return <ListItem onTouchTap={this.onSearchClickHandler.bind(this, search.Id )}
key={index} primaryText={textComponent}/>;
} );
if( searches.length > 5 ) {
viewMoreContent = <div><ListItem onTouchTap={onViewMoreClick} primaryText={viewMore}/></div>;
}
}
return (
<List style={ { backgroundColor: bgColor} }>
<SubHeader style={subHeaderStyle}>{headerContent}</SubHeader>
{listContent}
{viewMoreContent}
</List>
);
}
}
export default CluedInSavedSearch;