import React from 'react'; import { CollectionProvider, SchemaInitializer, SchemaInitializerItemOptions, useCollectionManager, useRecordCollectionDataSourceItems, useSchemaTemplateManager, } from '@nocobase/client'; import { traverseSchema } from '../nodes/manual/utils'; function InnerCollectionBlockInitializer({ insert, collection, dataSource, ...props }) { const { getTemplateSchemaByMode } = useSchemaTemplateManager(); const { getCollection } = useCollectionManager(); const items = useRecordCollectionDataSourceItems('FormItem') as SchemaInitializerItemOptions[]; const resovledCollection = getCollection(collection); async function onConfirm({ item }) { const template = item.template ? await getTemplateSchemaByMode(item) : null; const result = { type: 'void', name: resovledCollection.name, title: resovledCollection.title, 'x-decorator': 'DetailsBlockProvider', 'x-decorator-props': { collection, dataSource, }, 'x-component': 'CardItem', 'x-component-props': { title: props.title, }, 'x-designer': 'SimpleDesigner', properties: { grid: { type: 'void', 'x-component': 'FormV2', 'x-component-props': { useProps: '{{useDetailsBlockProps}}', }, 'x-read-pretty': true, properties: { grid: template || { type: 'void', 'x-component': 'Grid', 'x-initializer': 'ReadPrettyFormItemInitializers', properties: {}, }, }, }, }, }; traverseSchema(result, (node) => { if (node['x-uid']) { delete node['x-uid']; } }); insert(result); } return ; } export function CollectionBlockInitializer(props) { return ( ); }