@@ -2,12 +2,13 @@ import React, { useMemo } from 'react'
22import { createForm } from '@formily/core'
33import { Form } from '@formily/antd'
44import { observer } from '@formily/react'
5- import { Empty } from 'antd '
5+ import { requestIdle } from '@designable/shared '
66import { useSelection , useTree , usePrefix , IconWidget } from '@designable/react'
77import { SchemaField } from './SchemaField'
88import { ISettingFormProps } from './types'
99import { SettingsFormContext } from './context'
1010import { useLocales } from './effects'
11+ import { Empty } from 'antd'
1112import cls from 'classnames'
1213import './styles.less'
1314
@@ -22,44 +23,49 @@ const useCurrentNode = () => {
2223 return tree ?. findById ?.( selected [ 0 ] )
2324}
2425
25- export const SettingsForm : React . FC < ISettingFormProps > = observer ( ( props ) => {
26- const node = useCurrentNode ( )
27- const selected = useSelected ( )
28- const prefix = usePrefix ( 'settings-form' )
29- const form = useMemo ( ( ) => {
30- return createForm ( {
31- values : node ?. props ,
32- effects ( ) {
33- useLocales ( )
34- } ,
35- } )
36- } , [ node , node ?. designerProps ?. propsSchema ] )
26+ export const SettingsForm : React . FC < ISettingFormProps > = observer (
27+ ( props ) => {
28+ const node = useCurrentNode ( )
29+ const selected = useSelected ( )
30+ const prefix = usePrefix ( 'settings-form' )
31+ const form = useMemo ( ( ) => {
32+ return createForm ( {
33+ values : node ?. props ,
34+ effects ( ) {
35+ useLocales ( )
36+ } ,
37+ } )
38+ } , [ node , node ?. designerProps ?. propsSchema ] )
3739
38- const render = ( ) => {
39- if ( node && node . designerProps ?. propsSchema && selected . length === 1 ) {
40+ const render = ( ) => {
41+ if ( node && node . designerProps ?. propsSchema && selected . length === 1 ) {
42+ return (
43+ < div className = { cls ( prefix , props . className ) } style = { props . style } >
44+ < SettingsFormContext . Provider value = { props } >
45+ < Form
46+ form = { form }
47+ colon = { false }
48+ labelWidth = { 120 }
49+ labelAlign = "left"
50+ wrapperAlign = "right"
51+ feedbackLayout = "none"
52+ >
53+ < SchemaField schema = { node . designerProps . propsSchema as any } />
54+ </ Form >
55+ </ SettingsFormContext . Provider >
56+ </ div >
57+ )
58+ }
4059 return (
41- < div className = { cls ( prefix , props . className ) } style = { props . style } >
42- < SettingsFormContext . Provider value = { props } >
43- < Form
44- form = { form }
45- colon = { false }
46- labelWidth = { 120 }
47- labelAlign = "left"
48- wrapperAlign = "right"
49- feedbackLayout = "none"
50- >
51- < SchemaField schema = { node . designerProps . propsSchema as any } />
52- </ Form >
53- </ SettingsFormContext . Provider >
60+ < div className = { prefix + '-empty' } >
61+ < Empty />
5462 </ div >
5563 )
5664 }
57- return (
58- < div className = { prefix + '-empty' } >
59- < Empty />
60- </ div >
61- )
62- }
6365
64- return < IconWidget . Provider tooltip > { render ( ) } </ IconWidget . Provider >
65- } )
66+ return < IconWidget . Provider tooltip > { render ( ) } </ IconWidget . Provider >
67+ } ,
68+ {
69+ scheduler : requestIdle ,
70+ }
71+ )
0 commit comments