fix: mindmap ai preview (#10222)
This commit is contained in:
@@ -5,6 +5,7 @@ import type { GfxController } from '../controller.js';
|
|||||||
import { GfxExtension, GfxExtensionIdentifier } from '../extension.js';
|
import { GfxExtension, GfxExtensionIdentifier } from '../extension.js';
|
||||||
import { GfxBlockElementModel } from '../model/gfx-block-model.js';
|
import { GfxBlockElementModel } from '../model/gfx-block-model.js';
|
||||||
import type { GfxModel } from '../model/model.js';
|
import type { GfxModel } from '../model/model.js';
|
||||||
|
import type { GfxPrimitiveElementModel } from '../model/surface/element-model.js';
|
||||||
import type { GfxLocalElementModel } from '../model/surface/local-element-model.js';
|
import type { GfxLocalElementModel } from '../model/surface/local-element-model.js';
|
||||||
import type { SurfaceBlockModel } from '../model/surface/surface-model.js';
|
import type { SurfaceBlockModel } from '../model/surface/surface-model.js';
|
||||||
import {
|
import {
|
||||||
@@ -57,15 +58,21 @@ export class ViewManager extends GfxExtension {
|
|||||||
});
|
});
|
||||||
|
|
||||||
const updateViewOnElementChange = (surface: SurfaceBlockModel) => {
|
const updateViewOnElementChange = (surface: SurfaceBlockModel) => {
|
||||||
|
const createView = (
|
||||||
|
model: GfxPrimitiveElementModel | GfxLocalElementModel
|
||||||
|
) => {
|
||||||
|
const ViewCtor =
|
||||||
|
this._viewCtorMap.get(model.type) ?? GfxElementModelView;
|
||||||
|
const view = new ViewCtor(model, this.gfx);
|
||||||
|
|
||||||
|
this._viewMap.set(model.id, view);
|
||||||
|
view.onCreated();
|
||||||
|
};
|
||||||
|
|
||||||
this._disposable.add(
|
this._disposable.add(
|
||||||
surface.elementAdded.on(payload => {
|
surface.elementAdded.on(payload => {
|
||||||
const model = surface.getElementById(payload.id)!;
|
const model = surface.getElementById(payload.id)!;
|
||||||
const ViewCtor =
|
createView(model);
|
||||||
this._viewCtorMap.get(model.type) ?? GfxElementModelView;
|
|
||||||
const view = new ViewCtor(model, this.gfx);
|
|
||||||
|
|
||||||
this._viewMap.set(model.id, view);
|
|
||||||
view.onCreated();
|
|
||||||
})
|
})
|
||||||
);
|
);
|
||||||
|
|
||||||
@@ -79,9 +86,7 @@ export class ViewManager extends GfxExtension {
|
|||||||
|
|
||||||
this._disposable.add(
|
this._disposable.add(
|
||||||
surface.localElementAdded.on(model => {
|
surface.localElementAdded.on(model => {
|
||||||
const View = this._viewCtorMap.get(model.type) ?? GfxElementModelView;
|
createView(model);
|
||||||
|
|
||||||
this._viewMap.set(model.id, new View(model, this.gfx));
|
|
||||||
})
|
})
|
||||||
);
|
);
|
||||||
|
|
||||||
@@ -94,15 +99,11 @@ export class ViewManager extends GfxExtension {
|
|||||||
);
|
);
|
||||||
|
|
||||||
surface.localElementModels.forEach(model => {
|
surface.localElementModels.forEach(model => {
|
||||||
const View = this._viewCtorMap.get(model.type) ?? GfxElementModelView;
|
createView(model);
|
||||||
|
|
||||||
this._viewMap.set(model.id, new View(model, this.gfx));
|
|
||||||
});
|
});
|
||||||
|
|
||||||
surface.elementModels.forEach(model => {
|
surface.elementModels.forEach(model => {
|
||||||
const View = this._viewCtorMap.get(model.type) ?? GfxElementModelView;
|
createView(model);
|
||||||
|
|
||||||
this._viewMap.set(model.id, new View(model, this.gfx));
|
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -180,6 +180,9 @@ export class SyncController {
|
|||||||
}
|
}
|
||||||
|
|
||||||
const yValue = native2Y(value);
|
const yValue = native2Y(value);
|
||||||
|
if (this.yBlock.get(`prop:${p}`) === yValue) {
|
||||||
|
return Reflect.set(target, p, value, receiver);
|
||||||
|
}
|
||||||
this.yBlock.set(`prop:${p}`, yValue);
|
this.yBlock.set(`prop:${p}`, yValue);
|
||||||
const proxy = this._getPropsProxy(p, yValue);
|
const proxy = this._getPropsProxy(p, yValue);
|
||||||
setValue(target, p, value);
|
setValue(target, p, value);
|
||||||
|
|||||||
@@ -22,11 +22,11 @@ export class MindmapSurfaceBlock extends BlockComponent<SurfaceBlockModel> {
|
|||||||
renderer?: CanvasRenderer;
|
renderer?: CanvasRenderer;
|
||||||
|
|
||||||
private get _grid() {
|
private get _grid() {
|
||||||
return this.std.get(GfxControllerIdentifier).grid;
|
return this.gfx.grid;
|
||||||
}
|
}
|
||||||
|
|
||||||
private get _layer() {
|
private get _layer() {
|
||||||
return this.std.get(GfxControllerIdentifier).layer;
|
return this.gfx.layer;
|
||||||
}
|
}
|
||||||
|
|
||||||
get mindmapService() {
|
get mindmapService() {
|
||||||
@@ -34,7 +34,11 @@ export class MindmapSurfaceBlock extends BlockComponent<SurfaceBlockModel> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
get viewport() {
|
get viewport() {
|
||||||
return this.std.get(GfxControllerIdentifier).viewport;
|
return this.gfx.viewport;
|
||||||
|
}
|
||||||
|
|
||||||
|
get gfx() {
|
||||||
|
return this.std.get(GfxControllerIdentifier);
|
||||||
}
|
}
|
||||||
|
|
||||||
constructor() {
|
constructor() {
|
||||||
|
|||||||
Reference in New Issue
Block a user