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,
},
}),
);
}}
/>
);
};