import { useInfiniteQuery } from "@tanstack/react-query"; import { Link } from "expo-router"; import React from "react"; import { ScrollView, Text, View } from "react-native"; import { useApp } from "../../src/app-context"; import { dialogApi } from "../../src/services"; import { Button, ErrorNotice, Header, Loading, styles } from "../../src/ui"; const statusLabels = { open: "Открыт", waiting_for_company: "Ожидает ответа компании", waiting_for_client: "Ожидает вашего ответа", closed: "Закрыт", }; export default function DialogsScreen() { const app = useApp(); const dialogs = useInfiniteQuery({ queryKey: ["dialogs"], queryFn: ({ pageParam }) => dialogApi.list(pageParam), initialPageParam: undefined as string | undefined, getNextPageParam: (page) => page.next_cursor ?? undefined, enabled: app.authStatus === "authenticated", }); if (app.authStatus !== "authenticated") return
История диалогов История доступна после авторизации. Отправьте сообщение на главной странице, чтобы войти. На главную ; const items = dialogs.data?.pages.flatMap((page) => page.items) ?? []; return
void app.signOut()} /> История диалогов {dialogs.isLoading && } {dialogs.error && void dialogs.refetch()} />} {!dialogs.isLoading && !items.length && Диалогов пока нет.} {items.map((dialog) => {statusLabels[dialog.status]} Диалог {dialog.dialog_id.slice(0, 8)}… Открыть диалог )} {dialogs.hasNextPage &&