Fix hydration

This commit is contained in:
Jared Palmer 2023-06-16 16:46:45 -04:00
parent d10abef8da
commit 11757ebbe0

View file

@ -20,7 +20,7 @@ import { useState } from 'react'
import { Button } from './ui/button' import { Button } from './ui/button'
import { Input } from './ui/input' import { Input } from './ui/input'
const IS_PREVIEW = true || process.env.VERCEL_ENV === 'preview' const IS_PREVIEW = process.env.VERCEL_ENV === 'preview'
export interface ChatProps extends React.ComponentProps<'div'> { export interface ChatProps extends React.ComponentProps<'div'> {
initialMessages?: Message[] initialMessages?: Message[]
id?: string id?: string
@ -31,9 +31,7 @@ export function Chat({ id, initialMessages, className }: ChatProps) {
'ai-token', 'ai-token',
null null
) )
const [previewTokenDialog, setPreviewTokenDialog] = useState( const [previewTokenDialog, setPreviewTokenDialog] = useState(IS_PREVIEW)
IS_PREVIEW && previewToken == null
)
const [previewTokenInput, setPreviewTokenInput] = useState(previewToken ?? '') const [previewTokenInput, setPreviewTokenInput] = useState(previewToken ?? '')
const { messages, append, reload, stop, isLoading, input, setInput } = const { messages, append, reload, stop, isLoading, input, setInput } =
useChat({ useChat({
@ -44,7 +42,6 @@ export function Chat({ id, initialMessages, className }: ChatProps) {
previewToken previewToken
} }
}) })
console.log(previewToken)
return ( return (
<> <>
<div className={cn('pb-[200px] pt-4 md:pt-10', className)}> <div className={cn('pb-[200px] pt-4 md:pt-10', className)}>
@ -67,7 +64,7 @@ export function Chat({ id, initialMessages, className }: ChatProps) {
input={input} input={input}
setInput={setInput} setInput={setInput}
/> />
{IS_PREVIEW && previewToken == null && (
<Dialog open={previewTokenDialog} onOpenChange={setPreviewTokenDialog}> <Dialog open={previewTokenDialog} onOpenChange={setPreviewTokenDialog}>
<DialogContent> <DialogContent>
<DialogHeader> <DialogHeader>
@ -82,8 +79,8 @@ export function Chat({ id, initialMessages, className }: ChatProps) {
</a>{' '} </a>{' '}
on the OpenAI website. This is only necessary for preview on the OpenAI website. This is only necessary for preview
environments so that the open source community can test the app. environments so that the open source community can test the app.
The token will be saved to your browser&apos;s local storage The token will be saved to your browser&apos;s local storage under
under the name <code className="font-mono">ai-token</code>. the name <code className="font-mono">ai-token</code>.
</DialogDescription> </DialogDescription>
</DialogHeader> </DialogHeader>
<Input <Input
@ -103,7 +100,6 @@ export function Chat({ id, initialMessages, className }: ChatProps) {
</DialogFooter> </DialogFooter>
</DialogContent> </DialogContent>
</Dialog> </Dialog>
)}
</> </>
) )
} }