UNPKG

instantjob-recruiter-client

Version:

a set of tools for creating an instantjob recruiter react client

76 lines (70 loc) 2.58 kB
import React, {Component} from 'react' import {browserHistory} from 'react-router' import styled from 'styled-components' import {MdMail, MdPhone, MdCheckBox, MdCheckBoxOutlineBlank} from 'react-icons/lib/md' import ProfileImage from 'components/profile_image' import {card_width} from 'common/constants' import {color, link} from 'common/styles' import moment from 'common/moment' const on_click = (id) => () => browserHistory.push(`/users/${id}`) const UserCard = (props) => { let {selectable, selected, simple, clickable, id, last_name, first_name, email, phone_number, distance, postal_code, last_connection} = props return ( <Card onClick={clickable ? on_click(id) : null}> {selectable ? ( <div style={{display: 'flex', alignItems: 'center', paddingRight: 5}}> {selected ? ( <MdCheckBox /> ) : ( <MdCheckBoxOutlineBlank /> )} </div> ) : null} <div style={{flexShrink: 0, flexGrow: 0, display: "flex", alignItems: "center"}}> <ProfileImage {...props} large /> </div> <div style={{flex: 1, marginLeft: 10, display: 'flex', flexDirection: "column", alignItems: "stretch"}}> <div style={{flex: 1.3, fontSize: 16, position: 'relative', ...styles.truncate}}> <span>{`${last_name} ${first_name}`.trim()}</span> </div> <div style={{flex: 1, fontSize: 10, display: 'flex'}}> <div style={{...styles.truncate}}> <MdMail /> <span>{email}</span> </div> {phone_number ? ( <div style={{flexShrink: 0, width: 100, marginLeft: 10, ...styles.truncate}}> <MdPhone /> <span>{phone_number}</span> </div> ) : null} </div> </div> {simple ? null : ( <div style={{flexShrink: 0, flexGrow: 0, width: 120, display: "flex", flexDirection: "column", alignItems: "flex-end"}}> <div style={{flex: 1.3}}> {distance ? `${(distance / 1000).toFixed(1)} km` : postal_code} </div> <div style={{flex: 1, fontSize: 10}}> {last_connection ? moment(last_connection).calendar() : 'Aucune connexion'} </div> </div> )} </Card> ) } const styles = { truncate: { whiteSpace: "nowrap", overflow: "hidden", textOverflow: "ellipsis", } } export default UserCard const Card = styled.div` width: ${card_width}px; height: 60px; padding: 5px 0; display: flex; flex-direction: row; align-items: stretch; ${({onClick}) => onClick ? link : ""} `