import React, { KeyboardEvent, useEffect } from "react"; import { Box, Flex, IconButton, Textarea } from "@chakra-ui/react"; import { Check, X } from "lucide-react"; import { observer } from "mobx-react-lite"; import { Instance } from "mobx-state-tree"; import Message from "../../../models/Message"; import messageEditorStore from "../../../stores/MessageEditorStore"; interface MessageEditorProps { message: Instance; onCancel: () => void; } const MessageEditor = observer(({ message, onCancel }: MessageEditorProps) => { useEffect(() => { messageEditorStore.setMessage(message); return () => { messageEditorStore.onCancel(); }; }, [message]); const handleCancel = () => { messageEditorStore.onCancel(); onCancel(); }; const handleSave = async () => { await messageEditorStore.handleSave(); onCancel(); }; const handleKeyDown = (e: KeyboardEvent) => { if (e.key === "Enter" && (e.metaKey || e.ctrlKey)) { e.preventDefault(); handleSave(); } if (e.key === "Escape") { e.preventDefault(); handleCancel(); } }; return (