fix:while bord group error (#258)

* fix:while bord group error

* fix:while bord group error

* fix lint
This commit is contained in:
DiamondThree 2022-08-15 23:11:58 +08:00 committed by GitHub
parent 5e97efab3a
commit 2fdfdedd7b
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 36 additions and 5 deletions

View File

@ -100,6 +100,7 @@ export function groupShapes(
afterShapes[groupId] = TLDR.get_shape_util(TDShapeType.Group).create({
id: groupId,
affineId: groupId,
childIndex: groupChildIndex,
parentId: groupParentId,
point: [groupBounds.minX, groupBounds.minY],
@ -217,7 +218,6 @@ export function groupShapes(
}
}
});
return {
id: 'group',
before: {

View File

@ -1,7 +1,8 @@
import type { TldrawApp } from '@toeverything/components/board-state';
import type { TDShape } from '@toeverything/components/board-types';
import { TLDR, TldrawApp } from '@toeverything/components/board-state';
import { TDShape, TDShapeType } from '@toeverything/components/board-types';
import { GroupIcon, UngroupIcon } from '@toeverything/components/icons';
import { IconButton, Tooltip } from '@toeverything/components/ui';
import { services } from '@toeverything/datasource/db-service';
import { getShapeIds } from './utils';
interface GroupAndUnGroupProps {
@ -10,8 +11,38 @@ interface GroupAndUnGroupProps {
}
export const Group = ({ app, shapes }: GroupAndUnGroupProps) => {
const group = () => {
app.group(getShapeIds(shapes));
const group = async () => {
let groupShape = await services.api.editorBlock.create({
workspace: app.document.id,
parentId: app.appState.currentPageId,
type: 'shape',
});
await services.api.editorBlock.update({
workspace: groupShape.workspace,
id: groupShape.id,
properties: {
shapeProps: {
value: JSON.stringify(
TLDR.get_shape_util(TDShapeType.Group).create({
id: groupShape.id,
affineId: groupShape.id,
childIndex: 1,
parentId: app.appState.currentPageId,
point: [0, 0],
size: [0, 0],
children: getShapeIds(shapes),
workspace: app.document.id,
})
),
},
},
});
app.group(
getShapeIds(shapes),
groupShape.id,
app.appState.currentPageId
);
};
return (
<Tooltip content="Group">