import React, { useMemo } from 'react' import { createRoot } from 'react-dom/client' import { Designer, DesignerToolsWidget, ViewToolsWidget, Workspace, OutlineTreeWidget, HistoryWidget, StudioPanel, CompositePanel, WorkspacePanel, ToolbarPanel, ViewportPanel, ViewPanel, SettingsPanel, ComponentTreeWidget, ResourceListWidget, } from '@nokecy/designable-react' import { SettingsForm, setNpmCDNRegistry, } from '@nokecy/designable-react-settings-form' import { createDesigner, GlobalRegistry, Shortcut, KeyCode, } from '@nokecy/designable-core' import { LogoWidget, ActionsWidget, PreviewWidget, SchemaEditorWidget, MarkupSchemaWidget, } from './widgets' import { saveSchema } from './service' import { sources } from '@nokecy/designable-formily-antd' import { Alert } from 'antd' setNpmCDNRegistry('//unpkg.com') const { ErrorBoundary } = Alert GlobalRegistry.registerDesignerLocales({ 'zh-CN': { sources: { Inputs: '输入控件', Layouts: '布局组件', Arrays: '自增组件', Displays: '展示组件', }, }, 'en-US': { sources: { Inputs: 'Inputs', Layouts: 'Layouts', Arrays: 'Arrays', Displays: 'Displays', }, }, 'ko-KR': { sources: { Inputs: '입력', Layouts: '레이아웃', Arrays: '배열', Displays: '디스플레이', }, }, }) const App = () => { const engine = useMemo( () => createDesigner({ shortcuts: [ new Shortcut({ codes: [ [KeyCode.Meta, KeyCode.S], [KeyCode.Control, KeyCode.S], ], handler(ctx) { saveSchema(ctx.engine) }, }), ], rootComponentName: 'Form', }), [] ) return ( } actions={}> {() => } {(tree, onChange) => ( )} {(tree) => } {(tree) => } ) } const container = document.getElementById('root') if (container) { const root = createRoot(container) root.render() } else { console.error('dom root is non-existent') }