diff options
author | Ivan Chen <ivan@tagg.id> | 2021-04-21 15:43:03 -0400 |
---|---|---|
committer | Ivan Chen <ivan@tagg.id> | 2021-04-21 15:43:03 -0400 |
commit | 0dd0a4ac4343df036a1f16cbde070c524405bd21 (patch) | |
tree | 292a30ce0228560720214645805deb4b89f2eeae /src/components/messages/MessageFooter.tsx | |
parent | 5c438df5f6787cdc6c393873a98590cc827667b9 (diff) | |
parent | 4e8e1c0d58424e6b63cfb8470fc0a73c0e6b102b (diff) |
Merge branch 'master' into hotfix-linting-fixup
# Conflicts:
# .eslintrc.js
# src/components/notifications/Notification.tsx
# src/screens/onboarding/legacy/SocialMedia.tsx
# src/screens/onboarding/legacy/WaitlistSuccessScreen.tsx
# src/screens/profile/CategorySelection.tsx
Diffstat (limited to 'src/components/messages/MessageFooter.tsx')
-rw-r--r-- | src/components/messages/MessageFooter.tsx | 75 |
1 files changed, 75 insertions, 0 deletions
diff --git a/src/components/messages/MessageFooter.tsx b/src/components/messages/MessageFooter.tsx new file mode 100644 index 00000000..2ed8c6ed --- /dev/null +++ b/src/components/messages/MessageFooter.tsx @@ -0,0 +1,75 @@ +import moment from 'moment'; +import React from 'react'; +import {normalize} from '../../utils'; +import {useMessageContext} from 'stream-chat-react-native-core'; +import {View, Text, Image, StyleSheet} from 'react-native'; + +const MessageFooter: React.FC = () => { + const message = useMessageContext(); + + if (message.message.type === 'deleted') { + return <></>; + } else { + const printTime = moment(message.message.created_at).format('h:mmA'); + if (message.lastGroupMessage) { + return ( + <View + style={[ + message.isMyMessage ? styles.userMessage : styles.userXMessage, + styles.generalMessage, + ]}> + {readReceipts(message)} + <Text style={styles.time}>{printTime}</Text> + </View> + ); + } else { + return <></>; + } + } +}; + +const readReceipts = (message) => { + const readByLocal = message.message.readBy; + if (message.isMyMessage) { + if (readByLocal) { + return ( + <Image + source={require('../../assets/icons/messages/read_icon.png')} + style={styles.icon} + /> + ); + } else if (message.message.status === 'received') { + return ( + <Image + source={require('../../assets/icons/messages/delivered_icon.png')} + style={styles.icon} + /> + ); + } else if (message.message.status === 'sending') { + return ( + <Image + source={require('../../assets/icons/messages/sent_icon.png')} + style={styles.icon} + /> + ); + } else { + return <></>; + } + } +}; + +export const styles = StyleSheet.create({ + time: { + fontSize: normalize(11), + color: '#7A7A7A', + lineHeight: normalize(13), + }, + userMessage: { + marginRight: 5, + }, + userXMessage: {marginLeft: 5}, + generalMessage: {marginTop: 4, flexDirection: 'row'}, + icon: {width: 15, height: 15}, +}); + +export default MessageFooter; |