* refactor(SchemaSettings): unify naming style * refactor(SchemaInitializers): unify naming stle * refactor: replace CreateFormBlockInitializers to blockInitializers:createForm * refactor: replace to blockInitializers:customizeCreateForm * refactor: replace block intializers name * refactor: replace action initializers name * refactor: replace field initializers name * style: fix hover style for column action (T-3297) * refactor: revert some codes * chore: update comment * chore: replace iframeBlockSchemaSettings to blockSettings:iframe * chore: delete pro-packages * feat: add CompatibleSchemaInitializer * test: add unit tests * chore: add @internal for CompatibleSchemaInitializer * chore: block * chore: field * chore: ations * fix: build * chore: typo * fix: fix unit tests * test: fix e2e * chore: remove igone * refactor: page:addBlock * refactor: popup:addNew:addBlock * fix: fix max call stack * refactor: popup:addRecord:addBlock * refactor: remove blockInitializers:recordForm * refactor: popup:tableSelector:addBlock * refactor: popup:view:addBlock * refactor: popup:bulkEdit:addBlock & charts:addBlock * refactor: mobilePage:addBlock * refactor: popup:snapshot:addBlock * refactor: popup:workflowManual:configureUserInterface:addBlock * fix: avoid crashing * chore: optimize * refactor: popup:common:addBlock * refactor: workflowManual:popup:configureUserInterface:addBlock * refactor: details:configureFields * refactor: form:configureFields * refactor: table:configureColumns * refactor: filterForm:configureFields * refactor: associationFilterInitializer * refactor: assignFieldValuesForm:configureFields * refactor: bulkEditForm:configureFields * refactor: auditLogsTable:configureColumns * refactor: chartFilterForm:configureFields * refactor: kanban:configureItemFields * refactor: workflowManual:customForm:configureFields * refactor: detailsWithPaging:configureActions * refactor: details:configureActions * refactor: createForm:configureActions * refactor: editForm:configureActions * refactor: gridCard:configureActions * refactor: gridCard:configureItemActions * refactor: list:configureActions * refactor: list:configureItemActions * refactor: table:configureItemActions * refactor: table:configureActions * refactor: filterForm:configureActions * refactor: subTable:configureActions * refactor: bulkEditForm:configureActions * refactor: auditLogsTable:configureItemActions * refactor: auditLogsTable:configureActions * refactor: calendar:configureActions * refactor: chartFilterForm:configureActions * refactor: gantt:configureActions * refactor: kanban:configureActions * refactor: map:configureActions * refactor: workflowManual:form:configureActions * feat: use 'createForm:configureActions' in page * feat: use 'details:configureActions' in Calendar * feat: register deleteEvent initializer in calendar plugin * fix: fix delete event action * test: fix e2e * test: fix e2e * chore: only run workflow's e2e * Revert "chore: only run workflow's e2e" This reverts commit 9e5b4af41e40e8d616007a5ab97291fb2370d88a. * fix: use isInitializersSame to fix some case
68 lines
1.6 KiB
TypeScript
68 lines
1.6 KiB
TypeScript
import { TableOutlined } from '@ant-design/icons';
|
|
import { Plugin, SchemaInitializerItem, SchemaSettings, useSchemaInitializer } from '@nocobase/client';
|
|
import { Card } from 'antd';
|
|
import React from 'react';
|
|
import { useTranslation } from 'react-i18next';
|
|
|
|
export const HelloBlockInitializer = (props) => {
|
|
const { insert } = useSchemaInitializer();
|
|
const { t } = useTranslation();
|
|
return (
|
|
<SchemaInitializerItem
|
|
{...props}
|
|
icon={<TableOutlined />}
|
|
onClick={() => {
|
|
insert({
|
|
type: 'void',
|
|
'x-component': 'CardItem',
|
|
'x-settings': 'HelloSettings',
|
|
properties: {
|
|
hello: {
|
|
type: 'void',
|
|
'x-component': 'div',
|
|
'x-content': 'Hello World',
|
|
},
|
|
},
|
|
});
|
|
}}
|
|
title={t('Hello block')}
|
|
/>
|
|
);
|
|
};
|
|
|
|
const HelloPluginSettingPage = () => {
|
|
return (
|
|
<Card bordered={false}>
|
|
<div>Hello plugin setting page</div>
|
|
</Card>
|
|
);
|
|
};
|
|
|
|
const helloSettings = new SchemaSettings({
|
|
name: 'HelloSettings',
|
|
items: [
|
|
{
|
|
name: 'remove',
|
|
type: 'remove',
|
|
},
|
|
],
|
|
});
|
|
|
|
class HelloPlugin extends Plugin {
|
|
async load() {
|
|
this.app.schemaInitializerManager.addItem('page:addBlock', 'otherBlocks.hello', {
|
|
title: '{{t("Hello block")}}',
|
|
Component: HelloBlockInitializer,
|
|
});
|
|
this.app.pluginSettingsManager.add('sample-hello', {
|
|
title: 'Hello',
|
|
icon: 'ApiOutlined',
|
|
Component: HelloPluginSettingPage,
|
|
sort: 100,
|
|
});
|
|
this.schemaSettingsManager.add(helloSettings);
|
|
}
|
|
}
|
|
|
|
export default HelloPlugin;
|