"use client"; import { Dispatch, SetStateAction, useEffect, useState } from "react"; import { toast } from "sonner"; import { useDebounce } from "use-debounce"; import { useHasMounted } from "@/lib/utils"; import { ChatOptions } from "./chat/chat-options"; import { Textarea } from "./ui/textarea"; export interface SystemPromptProps { chatOptions: ChatOptions; setChatOptions: Dispatch>; } export default function SystemPrompt({ chatOptions, setChatOptions, }: SystemPromptProps) { const hasMounted = useHasMounted(); const systemPrompt = chatOptions ? chatOptions.systemPrompt : ""; const [text, setText] = useState(systemPrompt || ""); const [debouncedText] = useDebounce(text, 500); useEffect(() => { if (!hasMounted) { return; } if (debouncedText !== systemPrompt) { setChatOptions({ ...chatOptions, systemPrompt: debouncedText }); toast.success("System prompt updated", { duration: 1000 }); } }, [hasMounted, debouncedText]); return (

System prompt