mirror of
https://github.com/Tencent/tmagic-editor.git
synced 2025-04-06 03:57:56 +08:00
feat(editor): uiService支持插件扩展
This commit is contained in:
parent
3a5bd4e216
commit
b915accb71
@ -123,7 +123,7 @@ const getConfig = (item: MenuItem): (MenuButton | MenuComponent)[] => {
|
||||
className: 'scale-to-fit',
|
||||
icon: markRaw(FullScreen),
|
||||
tooltip: `缩放以适应(${ctrl}+0)`,
|
||||
handler: () => uiService?.set('zoom', uiService.calcZoom()),
|
||||
handler: async () => uiService?.set('zoom', await uiService.calcZoom()),
|
||||
});
|
||||
break;
|
||||
case 'rule':
|
||||
|
@ -139,9 +139,9 @@ onMounted(() => {
|
||||
e.inputEvent.preventDefault();
|
||||
services?.uiService.zoom(-0.1);
|
||||
})
|
||||
.keydown([ctrl, '0'], (e) => {
|
||||
.keydown([ctrl, '0'], async (e) => {
|
||||
e.inputEvent.preventDefault();
|
||||
services?.uiService.set('zoom', services.uiService.calcZoom());
|
||||
services?.uiService.set('zoom', await services.uiService.calcZoom());
|
||||
})
|
||||
.keydown([ctrl, '1'], (e) => {
|
||||
e.inputEvent.preventDefault();
|
||||
|
@ -59,7 +59,7 @@ const state = reactive<UiState>({
|
||||
|
||||
class Ui extends BaseService {
|
||||
constructor() {
|
||||
super([]);
|
||||
super(['initColumnWidth', 'zoom', 'calcZoom']);
|
||||
globalThis.addEventListener('resize', () => {
|
||||
this.setColumnWidth({
|
||||
center: 'auto',
|
||||
@ -95,7 +95,7 @@ class Ui extends BaseService {
|
||||
return (state as any)[name];
|
||||
}
|
||||
|
||||
public initColumnWidth() {
|
||||
public async initColumnWidth() {
|
||||
const columnWidthCacheData = globalThis.localStorage.getItem(COLUMN_WIDTH_STORAGE_KEY);
|
||||
if (columnWidthCacheData) {
|
||||
try {
|
||||
@ -107,12 +107,12 @@ class Ui extends BaseService {
|
||||
}
|
||||
}
|
||||
|
||||
public zoom(zoom: number) {
|
||||
public async zoom(zoom: number) {
|
||||
this.set('zoom', (this.get<number>('zoom') * 100 + zoom * 100) / 100);
|
||||
if (this.get<number>('zoom') < 0.1) this.set('zoom', 0.1);
|
||||
}
|
||||
|
||||
public calcZoom() {
|
||||
public async calcZoom() {
|
||||
const { stageRect, stageContainerRect } = state;
|
||||
const { height, width } = stageContainerRect;
|
||||
if (!width || !height) return 1;
|
||||
@ -162,12 +162,12 @@ class Ui extends BaseService {
|
||||
state.columnWidth = columnWidth;
|
||||
}
|
||||
|
||||
private setStageRect(value: StageRect) {
|
||||
private async setStageRect(value: StageRect) {
|
||||
state.stageRect = {
|
||||
...state.stageRect,
|
||||
...value,
|
||||
};
|
||||
state.zoom = this.calcZoom();
|
||||
state.zoom = await this.calcZoom();
|
||||
}
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user