mirror of
https://github.com/toeverything/AFFiNE.git
synced 2026-02-17 14:27:02 +08:00
fix(editor): missing refFlavour in creation of surface-ref (#11445)
This commit is contained in:
@@ -12,11 +12,11 @@ export type SurfaceRefProps = {
|
||||
|
||||
export const SurfaceRefBlockSchema = defineBlockSchema({
|
||||
flavour: 'affine:surface-ref',
|
||||
props: () =>
|
||||
({
|
||||
reference: '',
|
||||
caption: '',
|
||||
}) as SurfaceRefProps,
|
||||
props: () => ({
|
||||
reference: '',
|
||||
caption: '',
|
||||
refFlavour: '',
|
||||
}),
|
||||
metadata: {
|
||||
version: 1,
|
||||
role: 'content',
|
||||
|
||||
@@ -57,6 +57,7 @@ import {
|
||||
type GfxModel,
|
||||
GfxPrimitiveElementModel,
|
||||
isGfxGroupCompatibleModel,
|
||||
isPrimitiveModel,
|
||||
SURFACE_YMAP_UNIQ_IDENTIFIER,
|
||||
SurfaceBlockModel,
|
||||
} from '@blocksuite/std/gfx';
|
||||
@@ -567,6 +568,7 @@ export class DragEventWatcher {
|
||||
let largestElem!: {
|
||||
size: number;
|
||||
id: string;
|
||||
flavour: string;
|
||||
};
|
||||
|
||||
idRemap.forEach(val => {
|
||||
@@ -574,9 +576,13 @@ export class DragEventWatcher {
|
||||
|
||||
if (gfxElement?.elementBound) {
|
||||
const elemBound = gfxElement.elementBound;
|
||||
const flavour = isPrimitiveModel(gfxElement)
|
||||
? gfxElement.type
|
||||
: gfxElement.flavour;
|
||||
|
||||
largestElem =
|
||||
(largestElem?.size ?? 0) < elemBound.w * elemBound.h
|
||||
? { size: elemBound.w * elemBound.h, id: val }
|
||||
? { size: elemBound.w * elemBound.h, id: val, flavour }
|
||||
: largestElem;
|
||||
}
|
||||
});
|
||||
@@ -595,6 +601,7 @@ export class DragEventWatcher {
|
||||
'affine:surface-ref',
|
||||
{
|
||||
reference: largestElem.id,
|
||||
refFlavour: largestElem.flavour,
|
||||
},
|
||||
parent.id,
|
||||
index
|
||||
@@ -608,6 +615,7 @@ export class DragEventWatcher {
|
||||
let largestElem!: {
|
||||
size: number;
|
||||
id: string;
|
||||
flavour: string;
|
||||
};
|
||||
|
||||
const walk = (block: BlockSnapshot) => {
|
||||
@@ -615,14 +623,14 @@ export class DragEventWatcher {
|
||||
Object.values(
|
||||
block.props.elements as Record<
|
||||
string,
|
||||
{ id: string; xywh: SerializedXYWH }
|
||||
{ id: string; xywh: SerializedXYWH; type: string }
|
||||
>
|
||||
).forEach(elem => {
|
||||
if (elem.xywh) {
|
||||
const bound = Bound.deserialize(elem.xywh);
|
||||
const size = bound.w * bound.h;
|
||||
if ((largestElem?.size ?? 0) < size) {
|
||||
largestElem = { size, id: elem.id };
|
||||
largestElem = { size, id: elem.id, flavour: elem.type };
|
||||
}
|
||||
}
|
||||
});
|
||||
@@ -634,7 +642,7 @@ export class DragEventWatcher {
|
||||
);
|
||||
const size = bound.w * bound.h;
|
||||
if ((largestElem?.size ?? 0) < size) {
|
||||
largestElem = { size, id: block.id };
|
||||
largestElem = { size, id: block.id, flavour: block.flavour };
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -647,6 +655,7 @@ export class DragEventWatcher {
|
||||
'affine:surface-ref',
|
||||
{
|
||||
reference: largestElem.id,
|
||||
refFlavour: largestElem.flavour,
|
||||
},
|
||||
parent.id,
|
||||
index
|
||||
|
||||
@@ -57,6 +57,7 @@ describe('basic', () => {
|
||||
'affine:surface-ref',
|
||||
{
|
||||
reference: frameId,
|
||||
refFlavour: 'affine:frame',
|
||||
},
|
||||
noteAId
|
||||
);
|
||||
@@ -76,6 +77,7 @@ describe('basic', () => {
|
||||
'affine:surface-ref',
|
||||
{
|
||||
reference: frameId,
|
||||
refFlavour: 'affine:frame',
|
||||
},
|
||||
noteAId
|
||||
);
|
||||
@@ -113,6 +115,7 @@ describe('basic', () => {
|
||||
'affine:surface-ref',
|
||||
{
|
||||
reference: groupId,
|
||||
refFlavour: 'group',
|
||||
},
|
||||
noteAId
|
||||
);
|
||||
@@ -142,6 +145,7 @@ describe('basic', () => {
|
||||
'affine:surface-ref',
|
||||
{
|
||||
reference: frameId,
|
||||
refFlavour: 'affine:frame',
|
||||
},
|
||||
noteAId
|
||||
);
|
||||
@@ -177,6 +181,7 @@ describe('basic', () => {
|
||||
'affine:surface-ref',
|
||||
{
|
||||
reference: groupId,
|
||||
refFlavour: 'group',
|
||||
},
|
||||
noteAId
|
||||
);
|
||||
@@ -200,6 +205,7 @@ describe('basic', () => {
|
||||
'affine:surface-ref',
|
||||
{
|
||||
reference: frameId,
|
||||
refFlavour: 'affine:frame',
|
||||
},
|
||||
noteAId
|
||||
);
|
||||
@@ -238,6 +244,7 @@ describe('basic', () => {
|
||||
'affine:surface-ref',
|
||||
{
|
||||
reference: groupId,
|
||||
refFlavour: 'group',
|
||||
},
|
||||
noteAId
|
||||
);
|
||||
|
||||
Reference in New Issue
Block a user