import { View, Text, FlatList, TextInput } from "react-native"; import currentTheme from "./Themes"; import { useState } from "react"; // TODO: better shadows for everything type BubbleSide = "left" | "right"; type ChatMessageProps = { side: BubbleSide; width: number; height: number; }; type messageData = { id: string; side: BubbleSide; width: number; height: number; }; // NOTE: only for testing const getRandomInt = (min: number, max: number) => { min = Math.ceil(min); max = Math.floor(max); return Math.floor(Math.random() * (max - min + 1)) + min; }; const randomWidth = () => getRandomInt(100, 400); const randomHeight = () => getRandomInt(50, 100); const messages: messageData[] = [ // {{{ { id: "1", side: "left", width: randomWidth(), height: randomHeight(), }, { id: "2", side: "right", width: randomWidth(), height: randomHeight(), }, { id: "3", side: "left", width: randomWidth(), height: randomHeight(), }, { id: "4", side: "right", width: randomWidth(), height: randomHeight(), }, { id: "5", side: "left", width: randomWidth(), height: randomHeight(), }, { id: "6", side: "right", width: randomWidth(), height: randomHeight(), }, { id: "7", side: "left", width: randomWidth(), height: randomHeight(), }, { id: "8", side: "right", width: randomWidth(), height: randomHeight(), }, { id: "9", side: "left", width: randomWidth(), height: randomHeight(), }, { id: "10", side: "right", width: randomWidth(), height: randomHeight(), }, // { // id: "11", // side: "left", // width: randomWidth(), // height: randomHeight(), // }, // { // id: "12", // side: "right", // width: randomWidth(), // height: randomHeight(), // }, // { // id: "13", // side: "left", // width: randomWidth(), // height: randomHeight(), // }, // { // id: "14", // side: "right", // width: randomWidth(), // height: randomHeight(), // }, // { // id: "15", // side: "left", // width: randomWidth(), // height: randomHeight(), // }, // { // id: "16", // side: "right", // width: randomWidth(), // height: randomHeight(), // }, // { // id: "17", // side: "left", // width: randomWidth(), // height: randomHeight(), // }, // { // id: "18", // side: "right", // width: randomWidth(), // height: randomHeight(), // }, // { // id: "19", // side: "left", // width: randomWidth(), // height: randomHeight(), // }, // { // id: "20", // side: "right", // width: randomWidth(), // height: randomHeight(), // }, // { // id: "21", // side: "left", // width: randomWidth(), // height: randomHeight(), // }, // { // id: "22", // side: "right", // width: randomWidth(), // height: randomHeight(), // }, // { // id: "23", // side: "left", // width: randomWidth(), // height: randomHeight(), // }, // { // id: "24", // side: "right", // width: randomWidth(), // height: randomHeight(), // }, // { // id: "25", // side: "left", // width: randomWidth(), // height: randomHeight(), // }, // { // id: "26", // side: "right", // width: randomWidth(), // height: randomHeight(), // }, // { // id: "27", // side: "left", // width: randomWidth(), // height: randomHeight(), // }, // { // id: "28", // side: "right", // width: randomWidth(), // height: randomHeight(), // }, // { // id: "29", // side: "left", // width: randomWidth(), // height: randomHeight(), // }, // { // id: "30", // side: "right", // width: randomWidth(), // height: randomHeight(), // }, // { // id: "31", // side: "left", // width: randomWidth(), // height: randomHeight(), // }, // { // id: "32", // side: "right", // width: randomWidth(), // height: randomHeight(), // }, // { // id: "33", // side: "left", // width: randomWidth(), // height: randomHeight(), // }, // { // id: "34", // side: "right", // width: randomWidth(), // height: randomHeight(), // }, //, width: randomWidth, height: getRandomInt(50, 500) }}} ]; const Chat = () => { return ( ( )} keyExtractor={(item) => item.id} // extraData={selectedId} might need this later for re-rendering /> ); }; const ChatHeader = () => { return ( CalChat ); }; const ChatInput = () => { const [text, onChangeText] = useState("Nachricht"); return ( ); }; const ChatMessage = (props: ChatMessageProps) => { const borderColor = props.side === "left" ? currentTheme.chatBot : currentTheme.primeFg; const selfSide = props.side === "left" ? "self-start ml-2 rounded-bl-sm" : "self-end mr-2 rounded-br-sm"; return ( Lorem Ipsum Dolor sit amet ); }; export default Chat;