'use client' import * as React from 'react' import { CornerDownLeft, RefreshCcw, StopCircle } from 'lucide-react' import { useState } from 'react' import Textarea from 'react-textarea-autosize' import { Button } from '@/components/ui/button' import { fontMessage } from '@/lib/fonts' import { useCmdEnterSubmit } from '@/lib/hooks/use-command-enter-submit' import { cn } from '@/lib/utils' import { useChatStore } from '@/hooks/use-chat-store' import { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger } from '@/components/ui/tooltip' export interface PromptProps { onSubmit: (value: string) => void onRefresh?: () => void onAbort?: () => void isLoading: boolean } export function Prompt({ onSubmit, onRefresh, onAbort, isLoading }: PromptProps) { const { defaultMessage } = useChatStore() const [input, setInput] = useState(defaultMessage) const { formRef, onKeyDown } = useCmdEnterSubmit() const inputRef = React.useRef(null) React.useEffect(() => { if (inputRef.current) { inputRef.current.focus() } }, []) React.useEffect(() => { setInput(defaultMessage) }, [defaultMessage]) return (
{ e.preventDefault() setInput('') await onSubmit(input) }} ref={formRef} >
{onRefresh ? ( ) : null} {/* */}