import type { BoxProps } from '@chakra-ui/react'; import { Box, Button, ModalBody, ModalFooter, useDisclosure } from '@chakra-ui/react'; import React from 'react'; import { editorStateToText } from './utils'; import Editor from './Editor'; import MyModal from '../../MyModal'; import { useTranslation } from 'next-i18next'; import type { EditorState, LexicalEditor } from 'lexical'; import type { FormPropsType } from './type.d'; import { type EditorVariableLabelPickerType, type EditorVariablePickerType } from './type.d'; import { useCallback } from 'react'; const PromptEditor = ({ showOpenModal = true, variables = [], variableLabels = [], value, onChange, onBlur, minH, maxH, maxLength, placeholder, title, isInvalid, isDisabled, ...props }: { showOpenModal?: boolean; variables?: EditorVariablePickerType[]; variableLabels?: EditorVariableLabelPickerType[]; value?: string; onChange?: (text: string) => void; onBlur?: (text: string) => void; minH?: number; maxH?: number; maxLength?: number; placeholder?: string; title?: string; isInvalid?: boolean; isDisabled?: boolean; } & FormPropsType) => { const { isOpen, onOpen, onClose } = useDisclosure(); const { t } = useTranslation(); const onChangeInput = useCallback( (editorState: EditorState, editor: LexicalEditor) => { const text = editorStateToText(editor); onChange?.(text); }, [onChange] ); const onBlurInput = useCallback( (editor: LexicalEditor) => { const text = editorStateToText(editor); onBlur?.(text); }, [onBlur] ); return ( <> {isDisabled && ( )} ); }; export default React.memo(PromptEditor);