Guest User

Untitled

a guest
Aug 12th, 2021
135
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. import * as React from 'react';
  2. import { View, StyleSheet, Platform, SafeAreaView, AsyncStorage, Text, Image } from 'react-native';
  3. import PropTypes from 'prop-types'
  4. import { GiftedChat, Actions } from 'react-native-gifted-chat'
  5. import FirebaseStorage from '../data/FirebaseStorage';
  6. export const renderActions = (props) => (
  7.   <Actions
  8.     {...props}
  9.     containerStyle={{
  10.       width: 44,
  11.       height: 44,
  12.       alignItems: 'center',
  13.       justifyContent: 'center',
  14.       marginLeft: 4,
  15.       marginRight: 4,
  16.       marginBottom: 0,
  17.     }}
  18.     icon={() => (
  19.       <Image
  20.         style={{ width: 32, height: 32 }}
  21.         source={{
  22.           uri: 'https://placeimg.com/32/32/any',
  23.         }}
  24.       />
  25.     )}
  26.     options={{
  27.       'Choose From Library': () => {
  28.         this.redirect();
  29.       },
  30.     }}
  31.     optionTintColor="#222B45"
  32.   />
  33. );
  34.  
  35. class ChatScreen extends React.Component {
  36.  
  37.   state = {
  38.     messages: [],
  39.   };
  40.  
  41.   get user() {
  42.     const { name, id, avatar } = this.props.route.params;
  43.     return {
  44.       name: name,
  45.       _id: id,
  46.       avatar: avatar,
  47.     };
  48.   }
  49.  
  50.     componentDidMount() {
  51.       FirebaseStorage.shared.on(message =>
  52.         this.setState(previousState => ({
  53.           messages: GiftedChat.append(previousState.messages, message),
  54.         }))
  55.       );
  56.   }
  57.  
  58.   componentWillUnmount() {
  59.       FirebaseStorage.shared.off();
  60.   }
  61.  
  62.   render() {
  63.     return <SafeAreaView style={{flex: 1}}>
  64.         <GiftedChat
  65.               messages={this.state.messages}
  66.               onSend={FirebaseStorage.shared.send}
  67.               user={this.user}
  68.               alwaysShowSend
  69.               showUserAvatar
  70.               isAnimated
  71.               showAvatarForEveryMessage
  72.               renderBubble={this.renderBubble}
  73.               renderMessageImage={() => this.showImage}
  74.               renderUsernameOnMessage
  75.               isTyping
  76.               renderActions={renderActions}
  77.         />
  78.     </SafeAreaView>
  79.   }
  80.   redirect = () => {
  81.     this.props.navigation.navigate('CallScreen')
  82.     console.log('test')
  83.   }
  84. }
  85.  
  86. const styles = StyleSheet.create({
  87. });
  88.  
  89. export default ChatScreen;
  90.  
Advertisement
Add Comment
Please, Sign In to add comment