import { Send, X } from "lucide-react"; import React, { type Dispatch, type SetStateAction } from "react"; import type { ChatCompletionMessageParam } from "openai/resources/index"; import Row from "../../layout/Row"; import Button from "../../layout/Button"; import CopySlug from "../CopySlug"; import AIPromptHistoryModal from "./AIPromptHistoryModal"; import AIVoiceTranscription from "./AIVoiceTranscription"; type Props = { streamRes: string; setStreamRes: Dispatch>; setPrompt: Dispatch>; loading: boolean; promptFn: (prompt: string) => void; voice_transcription_fn?: (params: { last_message?: string }) => void; transcribing?: boolean; history: ChatCompletionMessageParam[]; prompt: string; currentPromptRef: React.MutableRefObject; promptInputRef: React.RefObject; user_image_url?: string; last_response?: string; cancel_voice_transcription_fn?: () => void; }; export default function AIPromptActionSection({ streamRes, setStreamRes, loading, promptFn, history, prompt, setPrompt, currentPromptRef, promptInputRef, user_image_url, transcribing, voice_transcription_fn, last_response, cancel_voice_transcription_fn, }: Props) { return ( {streamRes.match(/./) && (