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 { useTheme } from "../../../components/theme";
import { usePaginatedQuery } from "convex/react";
import { api } from "../../../convex/_generated/api";
import { useAuth } from "../../_layout";
import { PostCard } from "../../../components/post-card";
import { Button } from "../../../components/ui/button";
import { Loading } from "../../../components/ui/loading";
export default function PostsScreen() {
const theme = useTheme();
const router = useRouter();
const { isAuthenticated } = useAuth();
const [refreshing, setRefreshing] = useState(false);
const postsResult = usePaginatedQuery(
api.posts.listPaginated,
{},
{ initialNumItems: 20 }
);
const onRefresh = useCallback(() => {
setRefreshing(true);
setTimeout(() => setRefreshing(false), 800);
}, []);
if (!isAuthenticated) {
return (
Побарувања
Потребна најава
Најавете се за да ги видите побарувањата
);
}
return (
Побарувања
Побарувања од клиенти
}
contentContainerStyle={{ padding: theme.spacing.md, gap: theme.spacing.sm, paddingBottom: 100 }}
>
{postsResult.status === "LoadingFirstPage" ? (
) : postsResult.results.length === 0 ? (
Нема побарувања
Сè уште нема побарувања
) : (
postsResult.results.map((post) => (
))
)}
{postsResult.status === "CanLoadMore" && (
)}
);
}