* fix: bug * test: kanban test * test: gantt block test * test: gantt test * test: gantt test * test: gantt test * refactor: convert parameters to destructured object * test: add tests choices * test: add tests media * test: add tests for datetime in creating form * feat(plugin-mock-collection): generate faker time * test: add tests for datetime in editing form * test: add tests for datetime in details form * test: gantt block test * test: gantt test * test: gantt test * test: gantt test * fix: bug * feat: improve code * test: add tests for relation fields * refactor: style improve * fix: rename SchemaSettings * fix: type bug * refactor: useDesinger() * fix: bug * fix: bug * fix: build tip * refactor: kanban setting * refactor: gantt setting * refactor: bulk update setting * refactor: bulk update setting * refactor: bulk edit settings * refactor: duplicate settings * refactor: print action setting * refactor: duplicate settings * refactor: bulk update refactor * refactor: bulk update refactor * fix: designableState * fix: bug * fix: designable * refactor: bulk update * fix: designable * test: add tests for relation fields * test: add tests for relation fields * test: add tests for relation fields * feat: client api doc * test: add tests for relation fields * test: avoid errors * test: make tests passing * fix: bug * test: gantt test * test: make tests passing * test: add tests for advanced fields * test: increase e2e timeout-minutes to 60 * fix: bug * fix: improve code * feat: add schema initailizer component demos * test: make tests passing * fix: schema settings demos * feat: shallowMerge & deepMerge * test: reduce number of tests * test: make tests passing * feat: updates * fix: add Initializer Internal * demos: useSchemaSettingsRender * test: make tests passing * test: make tests passing * test: bulk update test * refactor: useSchemaToolbar * fix: improve docs * fix: bug * test: duplicate action test * test: duplicate action test * test: duplicate action test * test: duplicate action test * chore: upgrade dumi theme * test: make tests passing * test: add tests for linkage rules * test: add test for form data templates * test: add tests for default value * test: reduce number of tests * refactor: bulk edit setting * test: bulk edit action test * test: bulk edit action test * fix: dn.deepMerge * fix: bug * test: bulk edit action test * test: kanban test * refactor: bulk update version * refactor: print action version * fix: bug * fix: toolbar * fix: docs ssr * test: add tests for system fields * test: add tests for actions * fix: bug * test: add tests for lazy loading of variables * test: make testing more stable * test: bulk edit test * test: bulk update action test * fix: update docs * test: print test * test: kanban test * test: kanban test * refactor: duplicate version * fix: merge bug * refactor: bulk update * fix: merge bug * refactor: bulk edit * refactor: import * refactor: export action * refactor: code improve * refactor: kanban code improve * fix: merge bug * refactor: readPrettyFormActionInitializers * test: print action test * test: print action test * refactor: print action * test: action test * refactor: gantt date change * style: gantt style improve * test: gantt &bulkUpdate test * test: bulk update test * test: duplicate action test * test: print action test * test: bulk edit action test * test: gantt block test * test: kanban block test * test: test file name * test: test file name * test: bulk update action tst * refactor: rename test file name * refactor: bulk update action * refactor: gantt test * fix: block template * fix: block template * fix: useFieldModeOptions * refactor: code improve * fix: merge bug --------- Co-authored-by: dream2023 <1098626505@qq.com> Co-authored-by: Rain <958414905@qq.com> Co-authored-by: chenos <chenlinxh@gmail.com>
57 lines
1.8 KiB
TypeScript
57 lines
1.8 KiB
TypeScript
import { FormOutlined } from '@ant-design/icons';
|
|
import React from 'react';
|
|
import {
|
|
useBlockAssociationContext,
|
|
useCollection,
|
|
useSchemaTemplateManager,
|
|
createFormBlockSchema,
|
|
useRecordCollectionDataSourceItems,
|
|
SchemaInitializerItem,
|
|
useSchemaInitializer,
|
|
useSchemaInitializerItem,
|
|
} from '@nocobase/client';
|
|
|
|
export const CreateFormBulkEditBlockInitializer = () => {
|
|
const itemConfig = useSchemaInitializerItem();
|
|
const { onCreateBlockSchema, componentType, createBlockSchema, ...others } = itemConfig;
|
|
const { insert } = useSchemaInitializer();
|
|
const { getTemplateSchemaByMode } = useSchemaTemplateManager();
|
|
const association = useBlockAssociationContext();
|
|
const collection = useCollection();
|
|
return (
|
|
<SchemaInitializerItem
|
|
icon={<FormOutlined />}
|
|
{...others}
|
|
onClick={async ({ item }) => {
|
|
if (item.template) {
|
|
const s = await getTemplateSchemaByMode(item);
|
|
if (item.template.componentName === 'FormItem') {
|
|
const blockSchema = createFormBlockSchema({
|
|
actionInitializers: 'CreateFormActionInitializers',
|
|
association,
|
|
collection: collection.name,
|
|
template: s,
|
|
});
|
|
if (item.mode === 'reference') {
|
|
blockSchema['x-template-key'] = item.template.key;
|
|
}
|
|
insert(blockSchema);
|
|
} else {
|
|
insert(s);
|
|
}
|
|
} else {
|
|
insert(
|
|
createFormBlockSchema({
|
|
formItemInitializers: 'BulkEditFormItemInitializers',
|
|
actionInitializers: 'BulkEditFormActionInitializers',
|
|
association,
|
|
collection: collection.name,
|
|
}),
|
|
);
|
|
}
|
|
}}
|
|
items={useRecordCollectionDataSourceItems('FormItem')}
|
|
/>
|
|
);
|
|
};
|