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')
}