Files
AFFiNE-Mirror/libs/components/board-commands/src/reset-bounds.ts
2022-07-22 15:49:21 +08:00

47 lines
1.2 KiB
TypeScript

import type { TldrawCommand } from '@toeverything/components/board-types';
import { TLDR } from '@toeverything/components/board-state';
import type { TldrawApp } from '@toeverything/components/board-state';
export function resetBounds(
app: TldrawApp,
ids: string[],
pageId: string
): TldrawCommand {
const { currentPageId } = app;
const { before, after } = TLDR.mutate_shapes(
app.state,
ids,
shape => app.getShapeUtil(shape).onDoubleClickBoundsHandle?.(shape),
pageId
);
return {
id: 'reset_bounds',
before: {
document: {
pages: {
[currentPageId]: { shapes: before },
},
pageStates: {
[currentPageId]: {
selectedIds: ids,
},
},
},
},
after: {
document: {
pages: {
[currentPageId]: { shapes: after },
},
pageStates: {
[currentPageId]: {
selectedIds: ids,
},
},
},
},
};
}