import { 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 { EditorState, type LexicalEditor } from 'lexical'; import { EditorVariableLabelPickerType, EditorVariablePickerType } from './type.d'; import { useCallback, useTransition } from 'react'; const PromptEditor = ({ showOpenModal = true, showResize = true, variables = [], variableLabels = [], value, onChange, onBlur, h, maxLength, placeholder, title, isFlow }: { showOpenModal?: boolean; showResize?: boolean; variables?: EditorVariablePickerType[]; variableLabels?: EditorVariableLabelPickerType[]; value?: string; onChange?: (text: string) => void; onBlur?: (text: string) => void; h?: number; maxLength?: number; placeholder?: string; title?: string; isFlow?: boolean; }) => { const { isOpen, onOpen, onClose } = useDisclosure(); const [, startSts] = useTransition(); const { t } = useTranslation(); const onChangeInput = useCallback((editorState: EditorState, editor: LexicalEditor) => { const text = editorStateToText(editor).replaceAll('}}{{', '}} {{'); onChange?.(text); }, []); const onBlurInput = useCallback((editor: LexicalEditor) => { startSts(() => { const text = editorStateToText(editor).replaceAll('}}{{', '}} {{'); onBlur?.(text); }); }, []); return ( <> ); }; export default React.memo(PromptEditor);