From 0dc9a8cc06ec8e0208989ceb007faad201d89f28 Mon Sep 17 00:00:00 2001 From: Shravya Ramesh Date: Wed, 14 Apr 2021 16:46:33 -0700 Subject: refactored --- src/components/messages/MessageAvatar.tsx | 44 +++++++++++++++++++++++++++++ src/components/messages/TypingIndicator.tsx | 30 ++++++++++++++++++++ src/components/messages/index.ts | 2 ++ 3 files changed, 76 insertions(+) create mode 100644 src/components/messages/MessageAvatar.tsx create mode 100644 src/components/messages/TypingIndicator.tsx (limited to 'src/components/messages') diff --git a/src/components/messages/MessageAvatar.tsx b/src/components/messages/MessageAvatar.tsx new file mode 100644 index 00000000..d275eae5 --- /dev/null +++ b/src/components/messages/MessageAvatar.tsx @@ -0,0 +1,44 @@ +import React, {useContext} from 'react'; +import {Image, StyleSheet, View} from 'react-native'; +import {getMember, normalize} from '../../utils'; +import {useMessageContext} from 'stream-chat-react-native-core'; +import {useStore} from 'react-redux'; +import {ChatContext} from '../../App'; + +const MessageAvatar: React.FC = () => { + const {channel} = useContext(ChatContext); + const state = useStore().getState(); + const member = getMember(channel, state); + const message = useMessageContext(); + + return ( + + {message.lastGroupMessage === true && ( + + )} + + ); +}; + +const styles = StyleSheet.create({ + messageAvatarContainer: { + width: normalize(20), + zIndex: 1, + bottom: 20, + marginRight: '2%', + }, + messageAvatar: { + borderRadius: 50, + width: normalize(18), + height: normalize(18), + }, +}); + +export default MessageAvatar; diff --git a/src/components/messages/TypingIndicator.tsx b/src/components/messages/TypingIndicator.tsx new file mode 100644 index 00000000..be7141a2 --- /dev/null +++ b/src/components/messages/TypingIndicator.tsx @@ -0,0 +1,30 @@ +import React from 'react'; +import {View, Image, StyleSheet} from 'react-native'; +import {SCREEN_WIDTH} from '../../utils'; + +const TypingIndicator: React.FC = () => { + return ( + + + + ); +}; + +const styles = StyleSheet.create({ + typingIndicatorContainer: { + backgroundColor: '#E4F0F2', + width: 88, + height: 32, + borderRadius: 10, + marginBottom: 10, + marginLeft: SCREEN_WIDTH * 0.09, + flexDirection: 'row', + justifyContent: 'center', + alignItems: 'center', + }, +}); + +export default TypingIndicator; diff --git a/src/components/messages/index.ts b/src/components/messages/index.ts index c809d3d1..d08e9454 100644 --- a/src/components/messages/index.ts +++ b/src/components/messages/index.ts @@ -3,3 +3,5 @@ export {default as ChannelPreview} from './ChannelPreview'; export {default as ChatInput} from './ChatInput'; export {default as ChatHeader} from './ChatHeader'; export {default as ChatInputSubmit} from './ChatInputSubmit'; +export {default as MessageAvatar} from './MessageAvatar'; +export {default as TypingIndicator} from './TypingIndicator'; -- cgit v1.2.3-70-g09d2