import { ASSISTANT_CITATION_MAX_COMMENT_LENGTH, type AssistantCitation } from "@t3tools/contracts"; import { useState, type Ref } from "react"; import { Button } from "../ui/button"; export function AssistantCitationCommentEditor({ citation, inputRef, onSubmit, onSubmitAndSend, onCancel, }: { citation: AssistantCitation; inputRef?: Ref; onSubmit: (comment: string) => boolean; onSubmitAndSend?: (comment: string) => boolean; onCancel: () => void; }) { const [comment, setComment] = useState(citation.comment ?? ""); const commentTooLong = comment.length > ASSISTANT_CITATION_MAX_COMMENT_LENGTH; const submit = () => { if (!commentTooLong) onSubmit(comment); }; const submitAndSend = () => { if (commentTooLong) return; if (onSubmitAndSend) { onSubmitAndSend(comment); } else { onSubmit(comment); } }; return (
{ event.stopPropagation(); if (event.nativeEvent.isComposing || event.keyCode === 229) return; if (event.key === "Escape") { event.preventDefault(); onCancel(); } }} >