Spaces:
Sleeping
Sleeping
wuyiqunLu
feat: add playwright e2e test for chat page with new and old data structure (#99)
06bd1d1
unverified
'use client'; | |
import { useRouter } from 'next/navigation'; | |
import { useRef } from 'react'; | |
import Composer, { ComposerRef } from '@/components/chat/Composer'; | |
import { dbPostCreateChat } from '@/lib/db/functions'; | |
import { nanoid } from '@/lib/utils'; | |
import Chip from '@/components/ui/Chip'; | |
import { IconArrowUpRight } from '@/components/ui/Icons'; | |
import { EXAMPLES } from '@/lib/constants'; | |
export default function Page() { | |
const router = useRouter(); | |
const composerRef = useRef<ComposerRef>(null); | |
return ( | |
<div className="h-screen w-screen homepage"> | |
<div className="mx-auto w-[42rem] max-w-full px-4 mt-[200px]"> | |
<h1 className="mb-4 text-center relative"> | |
Vision Agent | |
<Chip className="absolute bg-green-100 text-green-500">BETA</Chip> | |
</h1> | |
<h4 className="text-center"> | |
Generate code to solve your vision problem with simple prompts. | |
</h4> | |
<div className="my-8"> | |
<Composer | |
ref={composerRef} | |
onSubmit={async ({ input, mediaUrl }) => { | |
const newId = nanoid(); | |
const resp = await dbPostCreateChat({ | |
id: newId, | |
title: `conversation-${newId}`, | |
mediaUrl, | |
message: { | |
prompt: input, | |
mediaUrl, | |
}, | |
}); | |
if (resp) { | |
router.push(`/chat/${newId}`); | |
} | |
}} | |
/> | |
</div> | |
{EXAMPLES.map((example, index) => { | |
return ( | |
<Chip | |
key={index} | |
className="bg-transparent border border-zinc-500 cursor-pointer px-4" | |
onClick={() => { | |
composerRef.current?.setInput(example.prompt); | |
composerRef.current?.setMediaUrl(example.mediaUrl); | |
}} | |
> | |
<div className="flex flex-row items-center space-x-2"> | |
<p className="text-primary text-sm">{example.title}</p> | |
<IconArrowUpRight className="text-primary" /> | |
</div> | |
</Chip> | |
); | |
})} | |
</div> | |
</div> | |
); | |
} | |