Sheldon Guo 45614c8d72
feat: support qrcode embed in markdown and scan in mobile (#4638)
* feat: workbench block

* feat: mobilePage

* fix: update WorkbenchAction

* feat: support qrcode embed in markdown and scan in mobile

* fix: fix markdown button be covered problem

* fix: fix unit test error

* fix: fix unit test errors

* refactor: use react router in qrcode scanner

* feat: markdown add loading

* fix: fix blank content in print page

* refactor: change plugin dependencies to devDependencies

* feat: add some padding in markdown editor

* chore: improve some code

* feat: improve code

* fix: add QRCodeScanner

* fix: iconColor

* fix: Improve code

* feat: Improve code

* fix: version

* chore: improve some code

* chore: improve some code

* fix: i18n

---------

Co-authored-by: chenos <chenlinxh@gmail.com>
2024-06-12 17:47:43 +08:00

58 lines
2.0 KiB
TypeScript

/**
* This file is part of the NocoBase (R) project.
* Copyright (c) 2020-2024 NocoBase Co., Ltd.
* Authors: NocoBase Team.
*
* This project is dual-licensed under AGPL-3.0 and NocoBase Commercial License.
* For more information, please refer to: https://www.nocobase.com/agreement.
*/
import { Plugin } from '@nocobase/client';
import { WorkbenchBlock } from './WorkbenchBlock';
import { workbenchActionSettingsLink } from './WorkbenchLinkActionSchemaInitializerItem';
import {
WorkbenchScanActionSchemaInitializerItem,
workbenchActionSettingsScanQrCode,
} from './WorkbenchScanActionSchemaInitializerItem';
import { QRCodeScanner } from './components/qrcode-scanner';
import { workbenchBlockInitializerItem } from './workbenchBlockInitializerItem';
import { workbenchBlockSettings } from './workbenchBlockSettings';
import { workbenchConfigureActions } from './workbenchConfigureActions';
export class PluginBlockWorkbenchClient extends Plugin {
async load() {
this.app.addComponents({ WorkbenchBlock, QRCodeScanner });
// 新增工作台区块的设置器
this.app.schemaSettingsManager.add(workbenchBlockSettings);
// 工作台的配置操作埋点
this.app.schemaInitializerManager.add(workbenchConfigureActions);
// 添加到页面的 Add block 里
this.app.schemaInitializerManager.addItem(
'page:addBlock',
`otherBlocks.${workbenchBlockInitializerItem.name}`,
workbenchBlockInitializerItem,
);
// 添加到移动端的 Add block 里
this.app.schemaInitializerManager.addItem(
'mobilePage:addBlock',
`otherBlocks.${workbenchBlockInitializerItem.name}`,
workbenchBlockInitializerItem,
);
// link 操作
this.app.schemaSettingsManager.add(workbenchActionSettingsLink);
// 扫码操作
this.app.schemaSettingsManager.add(workbenchActionSettingsScanQrCode);
this.app.schemaInitializerManager.addItem('workbench:configureActions', `qrcode`, {
Component: WorkbenchScanActionSchemaInitializerItem,
});
}
}
export default PluginBlockWorkbenchClient;