UNPKG

@ovine/craft

Version:
32 lines (31 loc) 1.41 kB
/** * 预览窗口 */ import { uuid } from 'amis/lib/utils/helper'; import { observer } from 'mobx-react'; import React, { useState } from 'react'; import { Amis } from '@core/components/amis/schema'; import { useSubscriber } from '@core/utils/hooks'; import { domId, message } from "../../constants"; import { useRootStore } from "../../stores"; import Attacher from "./attacher"; import { usePreviewStore, PreviewProvider, previewStore } from "./store"; import { StyledPreview } from "./styled"; const Preview = observer(() => { const { renderSchema, schema, editId } = usePreviewStore(); const { isStageMode } = useRootStore(); const [refreshKey, setRefreshKey] = useState(''); useSubscriber(message.onNodeAction, () => { setRefreshKey(uuid()); }); return (React.createElement(StyledPreview, null, isStageMode && React.createElement(Amis, { schema: schema }), React.createElement("div", { id: domId.editorPreview, className: `preview-panel ${!isStageMode ? 'd-block' : 'd-none'}` }, React.createElement("div", { "data-preview": "true" }, React.createElement(Amis, { key: `${editId}_${refreshKey}`, schema: renderSchema })), React.createElement(Attacher, null)))); }); export default () => { return (React.createElement(PreviewProvider, { value: previewStore }, React.createElement(Preview, null))); };