mirror of
https://github.com/toeverything/AFFiNE.git
synced 2026-02-17 22:37:04 +08:00
feat(editor): unify block props api (#10888)
Closes: [BS-2707](https://linear.app/affine-design/issue/BS-2707/统一使用props获取和更新block-prop)
This commit is contained in:
@@ -121,14 +121,14 @@ function autoResizeElements(
|
||||
}
|
||||
|
||||
if (ele instanceof NoteBlockModel) {
|
||||
const curScale = ele.edgeless.scale ?? 1;
|
||||
const curScale = ele.props.edgeless.scale ?? 1;
|
||||
const nextScale = curScale * (ALIGN_HEIGHT / ele.elementBound.h);
|
||||
const bound = Bound.deserialize(ele.xywh);
|
||||
bound.h = bound.h * (nextScale / curScale);
|
||||
bound.w = bound.w * (nextScale / curScale);
|
||||
updateElement(ele.id, {
|
||||
edgeless: {
|
||||
...ele.edgeless,
|
||||
...ele.props.edgeless,
|
||||
scale: nextScale,
|
||||
},
|
||||
xywh: bound.serialize(),
|
||||
@@ -137,7 +137,7 @@ function autoResizeElements(
|
||||
ele instanceof EdgelessTextBlockModel ||
|
||||
ele instanceof EmbedSyncedDocModel
|
||||
) {
|
||||
const curScale = ele.scale ?? 1;
|
||||
const curScale = ele.props.scale ?? 1;
|
||||
const nextScale = curScale * (ALIGN_HEIGHT / ele.elementBound.h);
|
||||
const bound = Bound.deserialize(ele.xywh);
|
||||
bound.h = bound.h * (nextScale / curScale);
|
||||
|
||||
@@ -459,9 +459,9 @@ export class ExportManager {
|
||||
nodes ?? gfx.getElementsByBound(bound, { type: 'block' }) ?? [];
|
||||
for (const block of blocks) {
|
||||
if (matchModels(block, [ImageBlockModel])) {
|
||||
if (!block.sourceId) return;
|
||||
if (!block.props.sourceId) return;
|
||||
|
||||
const blob = await block.doc.blobSync.get(block.sourceId);
|
||||
const blob = await block.doc.blobSync.get(block.props.sourceId);
|
||||
if (!blob) return;
|
||||
|
||||
const blobToImage = (blob: Blob) =>
|
||||
@@ -564,7 +564,7 @@ export class ExportManager {
|
||||
const pdfBase64 = await pdfDoc.saveAsBase64({ dataUri: true });
|
||||
|
||||
FileExporter.exportFile(
|
||||
(rootModel as RootBlockModel).title.toString() + '.pdf',
|
||||
(rootModel as RootBlockModel).props.title.toString() + '.pdf',
|
||||
pdfBase64
|
||||
);
|
||||
}
|
||||
@@ -578,7 +578,7 @@ export class ExportManager {
|
||||
}
|
||||
|
||||
FileExporter.exportPng(
|
||||
(this.doc.root as RootBlockModel).title.toString(),
|
||||
(this.doc.root as RootBlockModel).props.title.toString(),
|
||||
canvasImage.toDataURL('image/png')
|
||||
);
|
||||
}
|
||||
|
||||
@@ -90,7 +90,7 @@ export class SurfaceBlockTransformer extends BaseBlockTransformer<SurfaceBlockPr
|
||||
|
||||
override toSnapshot(payload: ToSnapshotPayload<SurfaceBlockProps>) {
|
||||
const snapshot = super.toSnapshot(payload);
|
||||
const elementsValue = payload.model.elements.getValue();
|
||||
const elementsValue = payload.model.props.elements.getValue();
|
||||
const value: Record<string, unknown> = {};
|
||||
/**
|
||||
* When the selectedElements is defined, only the selected elements will be serialized.
|
||||
|
||||
@@ -102,8 +102,8 @@ export function addNote(
|
||||
if (options.collapse && height > NOTE_MIN_HEIGHT) {
|
||||
const note = doc.getBlockById(noteId) as NoteBlockModel;
|
||||
doc.updateBlock(note, () => {
|
||||
note.edgeless.collapse = true;
|
||||
note.edgeless.collapsedHeight = height;
|
||||
note.props.edgeless.collapse = true;
|
||||
note.props.edgeless.collapsedHeight = height;
|
||||
});
|
||||
}
|
||||
gfx.tool.setTool(
|
||||
|
||||
@@ -47,13 +47,13 @@ export function updateXYWH(
|
||||
if (ele instanceof ConnectorElementModel) {
|
||||
ele.moveTo(bound);
|
||||
} else if (ele instanceof NoteBlockModel) {
|
||||
const scale = ele.edgeless.scale ?? 1;
|
||||
const scale = ele.props.edgeless.scale ?? 1;
|
||||
bound.w = clamp(bound.w, NOTE_MIN_WIDTH * scale, Infinity);
|
||||
bound.h = clamp(bound.h, NOTE_MIN_HEIGHT * scale, Infinity);
|
||||
if (bound.h >= NOTE_MIN_HEIGHT * scale) {
|
||||
updateBlock(ele, () => {
|
||||
ele.edgeless.collapse = true;
|
||||
ele.edgeless.collapsedHeight = bound.h / scale;
|
||||
ele.props.edgeless.collapse = true;
|
||||
ele.props.edgeless.collapsedHeight = bound.h / scale;
|
||||
});
|
||||
}
|
||||
updateElement(ele.id, {
|
||||
|
||||
Reference in New Issue
Block a user