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) => (
))}
)}
);
}