import React from 'react'; import { ImageSourcePropType, Keyboard, Platform } from 'react-native'; import { Button, Input, StyleService, useStyleSheet } from '@ui-kitten/components'; import { KeyboardAvoidingView } from './extra/keyboard-avoiding-view.component'; import { Chat } from './extra/chat.component'; import { AttachmentsMenu } from './extra/attachments-menu.component'; import { MicIcon, PaperPlaneIcon, PlusIcon } from './extra/icons'; import { Message } from './extra/data'; const initialMessages: Message[] = [ Message.howAreYou(), Message.imFine(), Message.imFineToo(), Message.walkingWithDog(), Message.imageAttachment1(), Message.imageAttachment2(), Message.canIJoin(), Message.sure(), ]; const galleryAttachments: ImageSourcePropType[] = [ require('./assets/image-attachment-1.png'), require('./assets/image-attachment-2.jpg'), require('./assets/image-attachment-1.png'), require('./assets/image-attachment-2.jpg'), ]; const keyboardOffset = (height: number): number => Platform.select({ android: 0, ios: height, }); export default (): React.ReactElement => { const styles = useStyleSheet(themedStyles); const [messages, setMessages] = React.useState(initialMessages); const [message, setMessage] = React.useState(null); const [attachmentsMenuVisible, setAttachmentsMenuVisible] = React.useState(false); const sendButtonEnabled = (): boolean => { return message && message.length > 0; }; const toggleAttachmentsMenu = (): void => { setAttachmentsMenuVisible(!attachmentsMenuVisible); }; const onSendButtonPress = (): void => { setMessages([...messages, new Message(message, 'now', true, null)]); setMessage(null); Keyboard.dismiss(); }; const renderAttachmentsMenu = (): React.ReactElement => ( ); return (