import React, { FunctionComponent } from 'react'; import { StyleSheet, Text, View, ViewStyle } from 'react-native'; import { Strings } from '../../resources/localization/Strings'; import { IContact, Presence } from '../../store/contacts/types'; import { AvatarPresenceBadge } from '../presence/AvatarPresenceBadge'; import { Divider,TouchableRipple } from 'react-native-paper'; interface IProps { contact: IContact; rightItem?: React.ReactNode; leftItems?: React.ReactNode; onPressed?: (contact: IContact) => void; style?: ViewStyle } export const ContactCardView: FunctionComponent = ({ contact, rightItem,leftItems, onPressed, style }) => { const contactPresence = contact.presence as keyof typeof Presence; const createActionHandler = () => { if (onPressed) { onPressed(contact); } } const renderLeftItems = () => { if (leftItems) { return leftItems; } else { return ( <> {contact.name} {Strings[contactPresence]} ); } } return ( {renderLeftItems()} {rightItem} ) } const styles = StyleSheet.create({ container: { paddingHorizontal: 16, paddingVertical: 8, }, pressable: { overflow: 'hidden', }, row: { flexDirection: 'row', alignItems: 'center', justifyContent: 'space-between', }, leftItemsContainer: { flexDirection: 'row', alignItems: 'center', }, rightItemsContainer: { flexDirection: 'row', justifyContent: 'space-between', alignItems: 'center', }, leftItemTextContainer: { marginLeft: 16, }, presenceText: { fontSize: 12, }, divider: { marginTop: 8, backgroundColor: '#e0e0e0', height: 1, }, });