import { FormOutlined } from '@ant-design/icons'; import { FormLayout } from '@formily/antd-v5'; import { SchemaOptionsContext } from '@formily/react'; import React, { useContext } from 'react'; import { useTranslation } from 'react-i18next'; import { useSchemaInitializer, useSchemaInitializerItem, useCollectionManager_deprecated, useGlobalTheme, FormDialog, SchemaComponent, DataBlockInitializer, SchemaComponentOptions, } from '@nocobase/client'; import { createGanttBlockSchema } from './utils'; export const GanttBlockInitializer = () => { const { insert } = useSchemaInitializer(); const { t } = useTranslation(); const { getCollectionFields } = useCollectionManager_deprecated(); const options = useContext(SchemaOptionsContext); const { theme } = useGlobalTheme(); const itemConfig = useSchemaInitializerItem(); return ( } onCreateBlockSchema={async ({ item }) => { const collectionFields = getCollectionFields(item.name, item.dataSource); const stringFields = collectionFields ?.filter((field) => field.type === 'string') ?.map((field) => { return { label: field?.uiSchema?.title, value: field.name, }; }); const dateFields = collectionFields ?.filter((field) => field.type === 'date') ?.map((field) => { return { label: field?.uiSchema?.title, value: field.name, }; }); const numberFields = collectionFields ?.filter((field) => field.type === 'float') ?.map((field) => { return { label: field?.uiSchema?.title, value: field.name, }; }); const values = await FormDialog( t('Create gantt block'), () => { return ( ); }, theme, ).open({ initialValues: {}, }); insert( createGanttBlockSchema({ collection: item.name, dataSource: item.dataSource, fieldNames: { ...values, }, }), ); }} /> ); };