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 && ;
}