diff --git a/packages/core/client/src/collection-manager/demos/demo5.tsx b/packages/core/client/src/collection-manager/demos/demo5.tsx index 64b69ab10..5c8952c60 100644 --- a/packages/core/client/src/collection-manager/demos/demo5.tsx +++ b/packages/core/client/src/collection-manager/demos/demo5.tsx @@ -1,9 +1,11 @@ -import { FormLayout } from '@formily/antd'; +import { FormDrawer, FormLayout } from '@formily/antd'; import { createForm } from '@formily/core'; -import { FormContext, ISchema } from '@formily/react'; +import { FormContext, ISchema, SchemaOptionsContext } from '@formily/react'; import { uid } from '@formily/shared'; import { + AntdSchemaComponentProvider, CardItem, + CollectionManagerContext, CollectionManagerProvider, CollectionProvider, FormItem, @@ -12,13 +14,14 @@ import { InputNumber, Markdown, SchemaComponent, + SchemaComponentOptions, SchemaComponentProvider, SchemaInitializer, SchemaInitializerProvider, useCollectionManager } from '@nocobase/client'; import cloneDeep from 'lodash/cloneDeep'; -import React from 'react'; +import React, { useContext } from 'react'; const collection: any = { name: 'posts', @@ -63,9 +66,11 @@ const form = createForm({ const FormItemInitializer = (props) => { const { item, insert } = props; const { getInterface } = useCollectionManager(); + const schemaOptions = useContext(SchemaOptionsContext); + const cm = useContext(CollectionManagerContext); return ( { + onClick={async () => { const interfaceOptions = getInterface(item.fieldInterface); if (!interfaceOptions) { return; @@ -76,6 +81,27 @@ const FormItemInitializer = (props) => { options.uiSchema.title = name; collection.fields.push(options); form.setValuesIn(name, uid()); + + const { values } = await FormDrawer('Add field', () => { + return ( + + + + + + + + + + ); + }).open({ + initialValues: {}, + }); + insert({ name, type: 'string',