register lib in PreviewModal

This commit is contained in:
Bowen Tan 2022-02-17 15:12:50 +08:00
parent 16f18772fc
commit f782e68ae3
3 changed files with 14 additions and 6 deletions

View File

@ -5,6 +5,7 @@ import {
DIALOG_CONTAINER_ID,
initSunmaoUI,
watch,
SunmaoLib,
} from '@sunmao-ui/runtime';
import { Box, Tabs, TabList, Tab, TabPanels, TabPanel, Flex } from '@chakra-ui/react';
import { observer } from 'mobx-react-lite';
@ -33,6 +34,7 @@ type Props = {
registry: ReturnOfInit['registry'];
stateStore: ReturnOfInit['stateManager']['store'];
services: EditorServices;
libs: SunmaoLib[];
};
const ApiFormStyle = css`
@ -45,7 +47,7 @@ const ApiFormStyle = css`
`;
export const Editor: React.FC<Props> = observer(
({ App, registry, stateStore, services }) => {
({ App, registry, stateStore, services, libs }) => {
const { eventBus, editorStore } = services;
const {
components,
@ -311,7 +313,12 @@ export const Editor: React.FC<Props> = observer(
</Box>
</Box>
{preview && (
<PreviewModal onClose={() => setPreview(false)} app={app} modules={modules} />
<PreviewModal
onClose={() => setPreview(false)}
app={app}
modules={modules}
libs={libs}
/>
)}
</KeyboardEventWrapper>
);

View File

@ -1,7 +1,6 @@
import { Box } from '@chakra-ui/react';
import { Application, createModule, Module } from '@sunmao-ui/core';
import { sunmaoChakraUILib } from '@sunmao-ui/chakra-ui-lib';
import { initSunmaoUI } from '@sunmao-ui/runtime';
import { initSunmaoUI, SunmaoLib } from '@sunmao-ui/runtime';
import React from 'react';
import ErrorBoundary from '../ErrorBoundary';
import { GeneralModal } from '../GeneralModal';
@ -9,13 +8,14 @@ import { GeneralModal } from '../GeneralModal';
type Props = {
app: Application;
modules: Module[];
libs: SunmaoLib[];
onClose: () => void;
};
export const PreviewModal: React.FC<Props> = ({ app, modules, onClose }) => {
export const PreviewModal: React.FC<Props> = ({ app, modules, libs, onClose }) => {
const { App, registry } = initSunmaoUI();
modules.forEach(m => registry.registerModule(createModule(m)));
sunmaoChakraUILib.components?.forEach(c => registry.registerComponent(c));
libs.forEach(lib => registry.installLib(lib));
return (
<GeneralModal onClose={onClose} title="Preview Modal">

View File

@ -91,6 +91,7 @@ export function initSunmaoUIEditor(props: SunmaoUIEditorProps = {}) {
registry={registry}
stateStore={stateManager.store}
services={services}
libs={props.libs || []}
/>
</ChakraProvider>
);