import { useState } from 'react'; import { Text, View } from 'react-native'; import { Stack, useRouter } from 'expo-router'; import { useQuery } from 'convex/react'; import { api } from '@spoon/backend/convex/_generated/api.js'; import type { PillTab } from '~/components/ui/pill-tabs'; import { ThreadListRow } from '~/components/threads/thread-list-row'; import { AppScreen } from '~/components/ui/app-screen'; import { EmptyState } from '~/components/ui/empty-state'; import { PillTabs } from '~/components/ui/pill-tabs'; type StatusFilter = | 'all' | 'open' | 'running' | 'waiting_for_user' | 'resolved'; const filters: PillTab[] = [ { label: 'All', value: 'all' }, { label: 'Open', value: 'open' }, { label: 'Running', value: 'running' }, { label: 'Waiting', value: 'waiting_for_user' }, { label: 'Resolved', value: 'resolved' }, ]; const ThreadsRoute = () => { const router = useRouter(); const [status, setStatus] = useState('all'); const [refreshing, setRefreshing] = useState(false); const threads = useQuery(api.threads.listMine, { limit: 50, status, }) ?? []; const softRefresh = () => { setRefreshing(true); setTimeout(() => setRefreshing(false), 600); }; return ( Threads Maintenance decisions, user requests, and workspace handoffs. {threads.length ? ( threads.map((thread) => ( router.push(`/threads/${thread._id}`)} /> )) ) : ( )} ); }; export default ThreadsRoute;