feat: 增加工具栏按钮示例

This commit is contained in:
guqiankun.gqk 2022-09-05 18:01:01 +08:00
parent f247aa5ef6
commit 56111ea81f
3 changed files with 53 additions and 6 deletions

View File

@ -30,6 +30,7 @@ import * as SCMPlugin from './plugins/web-scm.plugin';
import * as AlexApp from './plugins/alex-app.plugin';
import { StartupModule } from './module/Startup.module'
import { ToobarModule } from './module/ToolBar.module';
const CodeServiceModule = requireModule(
'@alipay/alex-code-service'
@ -64,6 +65,9 @@ const layoutConfig = {
[SlotLocation.extra]: {
modules: ['breadcrumb-menu'],
},
[SlotLocation.action]: {
modules: ['@opensumi/ide-toolbar-action'],
},
};
const platformConfig = {
@ -108,6 +112,7 @@ const App = () => (
}),
CodeAPIModule,
StartupModule,
ToobarModule,
],
extensionMetadata: [
css,

View File

@ -0,0 +1,38 @@
import { requireModule } from "alex";
import { ToolBarRightBtn } from "./editorEmpty.view";
const CommonDI = requireModule("@opensumi/di");
const CoreBrowser = requireModule("@opensumi/ide-core-browser");
const Editor = requireModule("@opensumi/ide-editor");
const Theme = requireModule("@opensumi/ide-theme");
const { Injectable } = CommonDI;
const { BrowserModule, Domain, MenuContribution , ToolBarActionContribution} = CoreBrowser;
// 注册 toobar 参考 https://github.com/opensumi/core/blob/main/packages/core-browser/__tests__/toolbar.test.ts
@Domain(ToolBarActionContribution, MenuContribution)
export class ToolbarContribution {
registerToolbarActions(registry: any) {
registry.addLocation('menu-right');
registry.setDefaultLocation('menu-right');
registry.registerToolbarAction({
description: '跳转标准版 Ant Codespaces',
component: ToolBarRightBtn,
id: 'toolbar-right-btn',
weight: 1,
preferredPosition: {
location: 'menu-right',
},
neverCollapse: true,
});
}
registerMenus(menus:any) {
// 由于目前 toolbar 尚未处理插件自定义组件展示因此先卸载掉toolbar的右键
menus.unregisterMenuId('kt/toolbar/context');
}
}
@Injectable()
export class ToobarModule extends BrowserModule {
providers: any[] = [ToolbarContribution];
}

View File

@ -1,7 +1,11 @@
export const EditorEmptyComponent = () => {
return (
<div >
test empty page
</div>
);
};
return <div>test empty page</div>;
};
export const ToolBarRightBtn = () => {
const clickFn = () => {
console.log(1);
};
return <button onClick={() => clickFn()}></button>;
};