import { CloseOutlined } from '@ant-design/icons'; import { Button, Divider, Input } from 'antd'; import React, { useState } from 'react'; import '../../style/sys-message.less'; interface SystemMessageProps { systemMessage: string; setSystemMessage: (value: string) => void; } const SystemMessage: React.FC = (props) => { const { systemMessage, setSystemMessage } = props; const systemMessageRef = React.useRef(null); const [autoSize, setAutoSize] = useState<{ minRows: number; maxRows: number; focus: boolean; }>({ minRows: 1, maxRows: 1, focus: false }); const handleFocus = () => { setAutoSize({ minRows: 4, maxRows: 4, focus: true }); setTimeout(() => { systemMessageRef.current?.focus?.({ cursor: 'end' }); }, 100); }; const handleBlur = () => { setAutoSize({ minRows: 1, maxRows: 1, focus: false }); }; const handleClearSystemMessage = () => { setSystemMessage(''); }; return (
{
setSystemMessage(e.target.value)} >
} {!autoSize.focus && (
{systemMessage || ( Type system message here )}
{systemMessage && ( )}
)}
); }; export default React.memo(SystemMessage);