1- import { ResizeType , AllProps , AnchorToResizeTypeMap , ISpace } from "./types" ;
1+ import { ResizeType , AllProps , AnchorToResizeTypeMap , ISpace , IPosition } from "./types" ;
22import { isHorizontalSpace } from "./utils" ;
33import { ISpaceContext , updateSpace } from "./ISpaceContext" ;
44import { throttle } from "./throttle" ;
@@ -27,7 +27,9 @@ export function startTouchResize(
2727 space : ISpace ,
2828 props : AllProps ,
2929 element : HTMLElement | undefined ,
30+ resizeType ?: ResizeType ,
3031 customResizeHandler ?: ( resizeDelta : IResizeChange ) => void ,
32+ onResizeEnd ?: ( size : number , position : IPosition ) => void ,
3133) {
3234 return startResize (
3335 e ,
@@ -41,7 +43,9 @@ export function startTouchResize(
4143 x : e . touches [ 0 ] . pageX ,
4244 y : e . touches [ 0 ] . pageY ,
4345 } ) ,
46+ resizeType ,
4447 customResizeHandler ,
48+ onResizeEnd ,
4549 ) ;
4650}
4751
@@ -51,7 +55,9 @@ export function startMouseResize(
5155 space : ISpace ,
5256 props : AllProps ,
5357 element : HTMLElement | undefined ,
58+ resizeType ?: ResizeType ,
5459 customResizeHandler ?: ( resizeDelta : IResizeChange ) => void ,
60+ onResizeEnd ?: ( size : number , position : IPosition ) => void ,
5561) {
5662 return startResize (
5763 e ,
@@ -65,11 +71,13 @@ export function startMouseResize(
6571 x : e . pageX ,
6672 y : e . pageY ,
6773 } ) ,
74+ resizeType ,
6875 customResizeHandler ,
76+ onResizeEnd ,
6977 ) ;
7078}
7179
72- function onResizeEnd ( props : AllProps , resizeType : ResizeType , element : HTMLElement ) {
80+ function resizeEnd ( props : AllProps , resizeType : ResizeType , element : HTMLElement , onResizeEnd ?: ( size : number , position : IPosition ) => void ) {
7381 const currentRect = element . getBoundingClientRect ( ) ;
7482 props . onResizeEnd &&
7583 props . onResizeEnd ( Math . floor ( resizeType === ResizeType . Left || resizeType === ResizeType . Right ? currentRect . width : currentRect . height ) ) ;
@@ -117,11 +125,12 @@ function startResize<T extends SyntheticEvent<HTMLElement> | MouseEvent | TouchE
117125 endEvent : EndEvent ,
118126 moveEvent : MoveEvent ,
119127 getCoords : ( event : T ) => { x : number ; y : number } ,
128+ resizeType ?: ResizeType ,
120129 customResizeHandler ?: ( resizeDelta : IResizeChange ) => void ,
130+ onResizeEnd ?: ( size : number , position : IPosition ) => void ,
121131) {
122- if ( element && props . resizable && props . anchor && parentContext ) {
123- const resizeType : ResizeType | undefined = AnchorToResizeTypeMap [ props . anchor ] ;
124-
132+ const type = resizeType || ( props . anchor ? AnchorToResizeTypeMap [ props . anchor ] : undefined ) ;
133+ if ( element && parentContext && ( props . resizable || props . isPositioned ) && type ) {
125134 if ( props . onResizeStart ) {
126135 const result = props . onResizeStart ( ) ;
127136 if ( typeof result === "boolean" && ! result ) {
@@ -145,19 +154,7 @@ function startResize<T extends SyntheticEvent<HTMLElement> | MouseEvent | TouchE
145154 let moved = false ;
146155
147156 const resize = ( x : number , y : number ) =>
148- onResize (
149- props ,
150- parentContext ,
151- space ,
152- resizeType ,
153- originalMouseX ,
154- originalMouseY ,
155- x ,
156- y ,
157- minimumAdjust ,
158- maximumAdjust ,
159- customResizeHandler ,
160- ) ;
157+ onResize ( props , parentContext , space , type , originalMouseX , originalMouseY , x , y , minimumAdjust , maximumAdjust , customResizeHandler ) ;
161158
162159 const withPreventDefault = ( e : T ) => {
163160 moved = true ;
@@ -180,7 +177,7 @@ function startResize<T extends SyntheticEvent<HTMLElement> | MouseEvent | TouchE
180177 parentContext . updateResizing ( false ) ;
181178 }
182179
183- onResizeEnd ( props , resizeType , element ) ;
180+ resizeEnd ( props , type , element , onResizeEnd ) ;
184181 } ;
185182
186183 window . addEventListener ( moveEvent , withPreventDefault as EventListener ) ;
0 commit comments