@@ -18,43 +18,49 @@ import {
1818 StyleProp ,
1919} from 'react-native' ;
2020import PropTypes from 'prop-types' ;
21- import { ViewStyle } from 'react-native/Libraries/StyleSheet/StyleSheet' ;
21+ import { ViewStyle } from 'react-native/Libraries/StyleSheet/StyleSheet' ;
2222
2323function clamp ( number : number , min : number , max : number ) {
2424 return Math . max ( min , Math . min ( number , max ) ) ;
2525}
2626
2727interface IProps {
28- /**** props that should probably be removed in favor of "children" */
29- renderText ?: string ;
30- isCircle ?: boolean ;
31- renderSize ?: number ;
32- imageSource ?: number ;
33- renderColor ?: string ;
34- /**** */
35- children ?: React . ReactNode ;
36- shouldReverse ?: boolean ;
37- disabled ?: boolean ;
38- debug ?: boolean ;
39- animatedViewProps ?: object ;
40- touchableOpacityProps ?: object ;
41- onDrag ?: ( e : GestureResponderEvent , gestureState : PanResponderGestureState ) => void ;
42- onShortPressRelease ?: ( event : GestureResponderEvent ) => void ;
43- onDragRelease ?: ( e : GestureResponderEvent , gestureState : PanResponderGestureState ) => void ;
44- onLongPress ?: ( event : GestureResponderEvent ) => void ;
45- onPressIn ?: ( event : GestureResponderEvent ) => void ;
46- onPressOut ?: ( event : GestureResponderEvent ) => void ;
47- onRelease ?: ( event : GestureResponderEvent , wasDragging : boolean ) => void ;
48- onReverse ?: ( ) => { x : number , y : number } ,
49- x ?: number ;
50- y ?: number ;
51- // z/elevation should be removed because it doesn't sync up visually and haptically
52- z ?: number ;
53- minX ?: number ;
54- minY ?: number ;
55- maxX ?: number ;
56- maxY ?: number ;
57- } ;
28+ /**** props that should probably be removed in favor of "children" */
29+ renderText ?: string ;
30+ isCircle ?: boolean ;
31+ renderSize ?: number ;
32+ imageSource ?: number ;
33+ renderColor ?: string ;
34+ /**** */
35+ children ?: React . ReactNode ;
36+ shouldReverse ?: boolean ;
37+ disabled ?: boolean ;
38+ debug ?: boolean ;
39+ animatedViewProps ?: object ;
40+ touchableOpacityProps ?: object ;
41+ onDrag ?: (
42+ e : GestureResponderEvent ,
43+ gestureState : PanResponderGestureState ,
44+ ) => void ;
45+ onShortPressRelease ?: ( event : GestureResponderEvent ) => void ;
46+ onDragRelease ?: (
47+ e : GestureResponderEvent ,
48+ gestureState : PanResponderGestureState ,
49+ ) => void ;
50+ onLongPress ?: ( event : GestureResponderEvent ) => void ;
51+ onPressIn ?: ( event : GestureResponderEvent ) => void ;
52+ onPressOut ?: ( event : GestureResponderEvent ) => void ;
53+ onRelease ?: ( event : GestureResponderEvent , wasDragging : boolean ) => void ;
54+ onReverse ?: ( ) => { x : number ; y : number } ;
55+ x ?: number ;
56+ y ?: number ;
57+ // z/elevation should be removed because it doesn't sync up visually and haptically
58+ z ?: number ;
59+ minX ?: number ;
60+ minY ?: number ;
61+ maxX ?: number ;
62+ maxY ?: number ;
63+ }
5864
5965export default function Draggable ( props : IProps ) {
6066 const {
@@ -108,7 +114,7 @@ export default function Draggable(props: IProps) {
108114 } , [ x , y ] ) ;
109115
110116 const shouldStartDrag = React . useCallback (
111- gs => {
117+ ( gs ) => {
112118 return ! disabled && ( Math . abs ( gs . dx ) > 2 || Math . abs ( gs . dy ) > 2 ) ;
113119 } ,
114120 [ disabled ] ,
@@ -195,10 +201,10 @@ export default function Draggable(props: IProps) {
195201 React . useEffect ( ( ) => {
196202 const curPan = pan . current ; // Using an instance to avoid losing the pointer before the cleanup
197203 if ( ! shouldReverse ) {
198- curPan . addListener ( c => ( offsetFromStart . current = c ) ) ;
204+ curPan . addListener ( ( c ) => ( offsetFromStart . current = c ) ) ;
199205 }
200206 return ( ) => {
201- // Typed incorrectly
207+ // Typed incorrectly
202208 curPan . removeAllListeners ( ) ;
203209 } ;
204210 } , [ shouldReverse ] ) ;
@@ -211,15 +217,15 @@ export default function Draggable(props: IProps) {
211217 left : 0 ,
212218 width : Window . width ,
213219 height : Window . height ,
220+ elevation : z ,
221+ zIndex : z ,
214222 } ;
215223 } , [ ] ) ;
216224
217225 const dragItemCss = React . useMemo ( ( ) => {
218226 const style : StyleProp < ViewStyle > = {
219227 top : y ,
220228 left : x ,
221- elevation : z ,
222- zIndex : z ,
223229 } ;
224230 if ( renderColor ) {
225231 style . backgroundColor = renderColor ;
@@ -257,7 +263,7 @@ export default function Draggable(props: IProps) {
257263 }
258264 } , [ children , imageSource , renderSize , renderText ] ) ;
259265
260- const handleOnLayout = React . useCallback ( event => {
266+ const handleOnLayout = React . useCallback ( ( event ) => {
261267 const { height, width} = event . nativeEvent . layout ;
262268 childSize . current = { x : width , y : height } ;
263269 } , [ ] ) ;
0 commit comments