import React from 'react'; import classNames from 'classnames'; import { Avatar } from '../Avatar'; export interface Contact { id: string; selected: boolean; authorProfileName: string; authorPhoneNumber: string; authorName: string; authorColor: any; authorAvatarPath: string; checkmarked: boolean; } interface MemberItemProps { member: Contact; selected: boolean; onClicked: any; i18n: any; checkmarked: boolean; } class MemberItem extends React.Component { constructor(props: any) { super(props); this.handleClick = this.handleClick.bind(this); } public render() { const name = this.props.member.authorProfileName; const pubkey = this.props.member.authorPhoneNumber; const selected = this.props.selected; const checkMarkClass = this.props.checkmarked ? 'check-mark' : classNames('check-mark', 'invisible'); return (
{this.renderAvatar()} {name} {pubkey}
); } private handleClick() { this.props.onClicked(this.props.member); } private renderAvatar() { return ( ); } } interface MemberListProps { members: Array; selected: any; onMemberClicked: any; i18n: any; } export class MemberList extends React.Component { constructor(props: any) { super(props); this.handleMemberClicked = this.handleMemberClicked.bind(this); } public render() { const { members } = this.props; const itemList = members.map(item => { const selected = item === this.props.selected; return ( ); }); return
{itemList}
; } private handleMemberClicked(member: any) { this.props.onMemberClicked(member); } }