import { createFileRoute } from '@tanstack/react-router' import { useMutation, useQuery } from 'convex/react' import { type FormEvent, useState } from 'react' import { Button } from '~/components/ui/button' import { Input } from '~/components/ui/input' import { api } from '../../convex/_generated/api' export const Route = createFileRoute('/convex-demo')({ component: ConvexDemo }) function ConvexDemo() { const messages = useQuery(api.messages.list) const send = useMutation(api.messages.send) const [body, setBody] = useState('') const onSubmit = async (e: FormEvent) => { e.preventDefault() if (!body.trim()) return await send({ author: 'You', body }) setBody('') } return (