import { Box, Flex, IconButton, Textarea } from '@chakra-ui/react'; import { Check, X } from 'lucide-react'; import { observer } from 'mobx-react-lite'; import { type Instance } from 'mobx-state-tree'; import React, { type KeyboardEvent, useEffect } from 'react'; 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 (