import { useInfiniteQuery } from "@tanstack/react-query"; import { Link, useRouter } from "expo-router"; import React, { useState } 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 router = useRouter(); const [creating, setCreating] = useState(false); const [createError, setCreateError] = useState(); 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", }); const createDialog = async () => { setCreating(true); setCreateError(undefined); try { const dialog = await dialogApi.create(crypto.randomUUID()); router.push(`/dialogs/${dialog.dialog_id}`); } catch (error) { setCreateError(error); } finally { setCreating(false); } }; if (app.authStatus !== "authenticated") return
История диалогов История доступна после авторизации. Отправьте сообщение на главной странице, чтобы войти. На главную ; const items = dialogs.data?.pages.flatMap((page) => page.items) ?? []; return
void app.signOut()} /> История диалогов