Skip to content

Commit 5a55b97

Browse files
committed
Reapplied minimum/maximum logic for anchored resizable spaces
1 parent 6ba44ac commit 5a55b97

File tree

1 file changed

+23
-18
lines changed

1 file changed

+23
-18
lines changed

src/core-resizing.ts

Lines changed: 23 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import { SyntheticEvent } from "react";
2-
import { ISpaceDefinition, ResizeType, ISpaceStore, OnResizeEnd, EndEvent, MoveEvent } from "./core-types";
3-
import { throttle } from "./core-utils";
2+
import { ISpaceDefinition, ResizeType, ISpaceStore, OnResizeEnd, EndEvent, MoveEvent, Type } from "./core-types";
3+
import { coalesce, throttle } from "./core-utils";
44

55
const RESIZE_THROTTLE = 0;
66

@@ -37,31 +37,36 @@ function createAdjuster(resizeType: ResizeType, space: ISpaceDefinition, origina
3737
const offset1 = dimensionToAdjust.resized;
3838
const offset2 = candidateOppositeDimensionToAdjust.resized;
3939

40-
// const rect = space.element.getBoundingClientRect();
41-
// const size = isHorizontal(resizeType) ? rect.width : rect.height;
42-
// const minimumAdjust = coalesce(space.minimumSize, 20)! - size + 0;
43-
// const maximumAdjust = space.maximumSize ? space.maximumSize - size + 0 : undefined;
40+
const rect = space.element.getBoundingClientRect();
41+
const size = isHorizontal(resizeType) ? rect.width : rect.height;
42+
const minimumAdjust = coalesce(space.minimumSize, 20)! - size + 0;
43+
const maximumAdjust = space.maximumSize ? space.maximumSize - size + 0 : undefined;
4444

4545
return (currentX: number, currentY: number) => {
46-
const adjustment = (isHorizontal(resizeType) ? originalX : originalY) - (isHorizontal(resizeType) ? currentX : currentY);
47-
48-
// if (adjustment < minimumAdjust) {
49-
// adjustment = minimumAdjust;
50-
// } else {
51-
// if (typeof maximumAdjust === "number") {
52-
// if (adjustment > maximumAdjust) {
53-
// adjustment = maximumAdjust;
54-
// }
55-
// }
56-
// }
46+
let adjustment = (isHorizontal(resizeType) ? originalX : originalY) - (isHorizontal(resizeType) ? currentX : currentY);
47+
let dimensionResized = negater(adjustment);
48+
49+
if (space.type !== Type.Positioned) {
50+
dimensionResized = Math.max(negater(adjustment), minimumAdjust);
51+
52+
if (dimensionResized < minimumAdjust) {
53+
dimensionResized = minimumAdjust;
54+
}
55+
56+
if (typeof maximumAdjust === "number") {
57+
if (dimensionResized > maximumAdjust) {
58+
dimensionResized = maximumAdjust;
59+
}
60+
}
61+
}
5762

5863
if (dimensionToAdjust.size !== undefined) {
5964
dimensionToAdjust.resized = negater(-adjustment) + offset1;
6065
if (candidateOppositeDimensionToAdjust.size) {
6166
candidateOppositeDimensionToAdjust.resized = negater(adjustment) + offset2;
6267
}
6368
} else {
64-
candidateOppositeDimensionToAdjust.resized = negater(adjustment) + offset2;
69+
candidateOppositeDimensionToAdjust.resized = dimensionResized + offset2;
6570
}
6671
};
6772
}

0 commit comments

Comments
 (0)