mirror of
https://github.com/toeverything/AFFiNE.git
synced 2026-02-13 12:55:00 +00:00
fix: drag block issue (#9902)
### Changed - Added support for changing the preview offset during dragging. - Fixed the preview rendering for embed block and surface-ref block - Resolved an issue where the host element might be reused in certain cases, which could cause unexpected behavior - Moved viewport-related constants and methods to a more appropriate location
This commit is contained in:
@@ -117,13 +117,11 @@ function createNewNote(host: EditorHost): AIItemConfig {
|
||||
const newNote = doc.getBlock(noteBlockId)?.model;
|
||||
if (!newNote || !matchFlavours(newNote, ['affine:note'])) return;
|
||||
const newNoteBound = Bound.deserialize(newNote.xywh);
|
||||
|
||||
const bounds = [bound, newNoteBound];
|
||||
const { zoom, centerX, centerY } = service.getFitToScreenData(
|
||||
[20, 20, 20, 20],
|
||||
bounds
|
||||
);
|
||||
service.viewport.setViewport(zoom, [centerX, centerY]);
|
||||
service.gfx.fitToScreen({
|
||||
bounds,
|
||||
padding: [20, 20, 20, 20],
|
||||
});
|
||||
})
|
||||
.catch(err => {
|
||||
console.error(err);
|
||||
|
||||
@@ -62,8 +62,7 @@ export const PPTBuilder = (host: EditorHost) => {
|
||||
const block = snapshot.snapshot.content[0];
|
||||
for (const child of block.children) {
|
||||
await addDoc(child);
|
||||
const { centerX, centerY, zoom } = service.getFitToScreenData();
|
||||
service.viewport.setViewport(zoom, [centerX, centerY]);
|
||||
service.gfx.fitToScreen();
|
||||
}
|
||||
} catch (e) {
|
||||
console.error(e);
|
||||
|
||||
@@ -64,12 +64,9 @@ function fitViewport(
|
||||
false
|
||||
);
|
||||
} else {
|
||||
const data = rootService.getFitToScreenData();
|
||||
rootService.viewport.setViewport(
|
||||
data.zoom,
|
||||
[data.centerX, data.centerY],
|
||||
false
|
||||
);
|
||||
rootService.gfx.fitToScreen({
|
||||
smooth: false,
|
||||
});
|
||||
}
|
||||
} catch (e) {
|
||||
logger.warn('failed to fitViewPort', e);
|
||||
|
||||
Reference in New Issue
Block a user