UNPKG

@ovine/craft

Version:
37 lines (36 loc) 1.1 kB
/** * 所有容器 可以添加 组件的 迷你指示器 * 用户可以根据对应的 提示,在合适的地方添加组件 * * 要针对每个容器写对应的指示器 * */ import { uuid } from 'amis/lib/utils/helper'; import _ from 'lodash'; import React, { useEffect } from 'react'; import { useSubscriber, useImmer } from '@core/utils/hooks'; import { previewStore } from "../../preview/store"; import { message } from "../../../constants"; import Page from "./page"; const Containers = { Page, }; export default () => { const [state, setState] = useImmer({}); const { refreshKey = '', info = {} } = state; const Component = Containers[_.upperFirst(_.camelCase(info.type))]; useSubscriber([message.updateSelected, message.onNodeAction], () => { setState((d) => { d.refreshKey = uuid(); }); }); useEffect(() => { setState((d) => { d.info = previewStore.selectedInfo; }); }, [refreshKey]); if (!Component) { return null; } return React.createElement(Component, { info: info }); };