Contact: show a contact's photo if available.

master
Tom Hacohen 4 years ago
parent 985f39930b
commit 2547fb9ae7

@ -15,7 +15,7 @@ import CopyIcon from '../icons/Copy';
import PimItemHeader from './PimItemHeader'; import PimItemHeader from './PimItemHeader';
import { ContactType } from '../pim-types'; import { ContactType } from '../pim-types';
import { IconButton } from '@material-ui/core'; import { IconButton, Avatar } from '@material-ui/core';
class Contact extends React.PureComponent { class Contact extends React.PureComponent {
public props: { public props: {
@ -162,9 +162,11 @@ class Contact extends React.PureComponent {
} }
} }
const contactImageSrc = contact.comp.getFirstProperty('photo')?.getFirstValue();
return ( return (
<div> <div>
<PimItemHeader text={name}> <PimItemHeader text={name} rightItem={contactImageSrc && (<Avatar style={{ width: '3em', height: '3em' }} src={contactImageSrc} />)}>
{lastModified && ( {lastModified && (
<span style={{ fontSize: '90%' }}>{lastModified}</span> <span style={{ fontSize: '90%' }}>{lastModified}</span>
)} )}

@ -6,7 +6,7 @@ import Color from 'color';
import { Theme, withTheme } from '@material-ui/core/styles'; import { Theme, withTheme } from '@material-ui/core/styles';
export default withTheme((props: {text: string, backgroundColor?: string, children?: any, theme: Theme}) => { export default withTheme((props: {text: string, backgroundColor?: string, children?: any, rightItem?: React.ReactNode, theme: Theme}) => {
const backgroundColor = props.backgroundColor ?? props.theme.palette.secondary.main; const backgroundColor = props.backgroundColor ?? props.theme.palette.secondary.main;
const foregroundColor = props.theme.palette.getContrastText(Color(backgroundColor).rgb().string()); const foregroundColor = props.theme.palette.getContrastText(Color(backgroundColor).rgb().string());
const style = { const style = {
@ -14,6 +14,8 @@ export default withTheme((props: {text: string, backgroundColor?: string, childr
backgroundColor, backgroundColor,
color: foregroundColor, color: foregroundColor,
padding: 15, padding: 15,
display: 'flex',
justifyContent: 'space-between',
}, },
headerText: { headerText: {
marginTop: 10, marginTop: 10,
@ -23,8 +25,11 @@ export default withTheme((props: {text: string, backgroundColor?: string, childr
return ( return (
<div style={style.header}> <div style={style.header}>
<div>
<h2 style={style.headerText}>{props.text}</h2> <h2 style={style.headerText}>{props.text}</h2>
{props.children} {props.children}
</div> </div>
{props.rightItem}
</div>
); );
}); });

Loading…
Cancel
Save