import { View, Text, ScrollView, RefreshControl } from "react-native"; import { useRouter } from "expo-router"; import { useState, useCallback } from "react"; import { Ionicons } from "@expo/vector-icons"; import { useQuery } from "convex/react"; import { api } from "../../../convex/_generated/api"; import { useAuth } from "../../_layout"; import { useTheme } from "../../../components/theme"; import { ChatListItem } from "../../../components/chat-list-item"; import { Button } from "../../../components/ui/button"; import { Loading } from "../../../components/ui/loading"; export default function ChatScreen() { const theme = useTheme(); const router = useRouter(); const { token, userId, isAuthenticated } = useAuth(); const [refreshing, setRefreshing] = useState(false); const chats = useQuery( api.chats.listByUser, isAuthenticated && token ? { token } : "skip" ); const onRefresh = useCallback(() => { setRefreshing(true); setTimeout(() => setRefreshing(false), 800); }, []); if (!isAuthenticated) { return ( Чат Потребна најава Најавете се за да ги видите вашите разговори ); } if (chats === undefined) { return ( ); } return ( Чат Вашите разговори {chats.length === 0 ? ( } contentContainerStyle={{ flex: 1, alignItems: "center", justifyContent: "center", padding: theme.spacing.lg }} > Немате разговори Започнете разговор со мајстор или клиент ) : ( } style={{ backgroundColor: theme.colors.background }} contentContainerStyle={{ paddingBottom: 100 }} > {chats.map((chat) => ( ))} )} ); }