Skip to content

Commit

Permalink
fix: update drawing panel state at end of changing
Browse files Browse the repository at this point in the history
  • Loading branch information
siam-ese committed Aug 15, 2024
1 parent 1d1d59c commit 2cc1033
Showing 1 changed file with 57 additions and 56 deletions.
113 changes: 57 additions & 56 deletions packages/drawing-ui/src/views/panel/DrawingTransform.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -177,64 +177,65 @@ export const DrawingTransform = (props: IDrawingTransformProps) => {
};

useEffect(() => {
const changeStartSub = transformer.changeStart$.subscribe((state) => {
changeObs(state);
});

const changingSub = transformer.changing$.subscribe((state) => {
changeObs(state);
});

const focusSub = drawingManagerService.focus$.subscribe((drawings) => {
if (drawings.length !== 1) {
return;
}

const drawingParam = drawingManagerService.getDrawingByParam(drawings[0]);

if (drawingParam == null) {
return;
}

const transform = drawingParam.transform;

if (transform == null) {
return;
}

const {
width: originWidth,
height: originHeight,
left: originX,
top: originY,
angle: originRotation,
} = transform;

if (originWidth != null) {
setWidth(originWidth);
}

if (originHeight != null) {
setHeight(originHeight);
}

if (originX != null) {
setXPosition(originX);
}

if (originY != null) {
setYPosition(originY);
}

if (originRotation != null) {
setRotation(originRotation);
}
});
const subscriptions = [
transformer.changeStart$.subscribe((state) => {
changeObs(state);
}),
transformer.changing$.subscribe((state) => {
changeObs(state);
}),
transformer.changeEnd$.subscribe((state) => {
changeObs(state);
}),
drawingManagerService.focus$.subscribe((drawings) => {
if (drawings.length !== 1) {
return;
}

const drawingParam = drawingManagerService.getDrawingByParam(drawings[0]);

if (drawingParam == null) {
return;
}

const transform = drawingParam.transform;

if (transform == null) {
return;
}

const {
width: originWidth,
height: originHeight,
left: originX,
top: originY,
angle: originRotation,
} = transform;

if (originWidth != null) {
setWidth(originWidth);
}

if (originHeight != null) {
setHeight(originHeight);
}

if (originX != null) {
setXPosition(originX);
}

if (originY != null) {
setYPosition(originY);
}

if (originRotation != null) {
setRotation(originRotation);
}
}),
];

return () => {
changingSub.unsubscribe();
changeStartSub.unsubscribe();
focusSub.unsubscribe();
subscriptions.forEach((sub) => sub.unsubscribe());
};
// eslint-disable-next-line react-hooks/exhaustive-deps
}, []);
Expand Down

0 comments on commit 2cc1033

Please sign in to comment.