UNPKG

@ovine/editor

Version:
35 lines (34 loc) 1.56 kB
import cls from 'classnames'; import { pick } from 'lodash'; import { observer, inject } from 'mobx-react'; import React, { useEffect, useRef } from 'react'; import { app } from "../../../../core/lib/app"; import { Editor } from "../../assets/scripts/editor.view"; import { GlobalEditorStyle } from "./styled"; export default inject('store')(observer((props) => { const { isPreview, isMobile, setEditorInstance, setLastSavedSchema, option } = props.store; const { editorStore } = props; const $editor = useRef(null); const editorProps = pick(option, [ 'autoFocus', 'schemaFilter', 'className', 'amisEnv', 'ctx', 'plugins', 'iframeUrl', 'isHiddenProps', ]); const { className } = editorProps; const editorData = Object.assign(Object.assign({}, option.data), app.amis.constants); useEffect(() => { setEditorInstance($editor.current); // 主要用历史记录更新 setLastSavedSchema(editorStore.schema); // 第一次存储初始化数据 return () => { setEditorInstance(); }; }, []); return (React.createElement("div", { className: cls(className, { 'd-none': isPreview }) }, React.createElement(GlobalEditorStyle, null), React.createElement(Editor, Object.assign({}, editorProps, { className: "is-fixed", ref: $editor, data: editorData, preview: false, isMobile: isMobile, theme: app.theme.getName(), value: editorStore.schema, onChange: (value) => editorStore.updateSchema(value) })))); }));