|
14 | 14 | [react-native.reanimated :as reanimated]))
|
15 | 15 |
|
16 | 16 | (defn drag-gesture
|
17 |
| - [x-pos gestures-disabled? set-gestures-disabled disabled? track-width sliding-complete? |
| 17 | + [x-pos disabled? track-width sliding-complete? |
18 | 18 | set-sliding-complete
|
19 | 19 | on-complete reset-fn]
|
20 |
| - (let [gestures-enabled? (not (or disabled? gestures-disabled?))] |
21 |
| - (-> (gesture/gesture-pan) |
22 |
| - (gesture/with-test-ID :slide-button-gestures) |
23 |
| - (gesture/enabled gestures-enabled?) |
24 |
| - (gesture/min-distance 0) |
25 |
| - (gesture/on-update (fn [event] |
26 |
| - (let [x-translation (oops/oget event "translationX") |
27 |
| - clamped-x (utils/clamp-value x-translation 0 track-width) |
28 |
| - reached-end? (>= clamped-x track-width)] |
29 |
| - (reanimated/set-shared-value x-pos clamped-x) |
30 |
| - (when (and reached-end? (not sliding-complete?)) |
31 |
| - (set-gestures-disabled true) |
32 |
| - (set-sliding-complete true) |
33 |
| - (when on-complete (on-complete reset-fn)))))) |
34 |
| - (gesture/on-end (fn [event] |
35 |
| - (let [x-translation (oops/oget event "translationX") |
36 |
| - reached-end? (>= x-translation track-width)] |
37 |
| - (when (not reached-end?) |
38 |
| - (animations/reset-track-position x-pos)))))))) |
| 20 | + (-> (gesture/gesture-pan) |
| 21 | + (gesture/with-test-ID :slide-button-gestures) |
| 22 | + (gesture/enabled (not disabled?)) |
| 23 | + (gesture/min-distance 0) |
| 24 | + (gesture/on-update (fn [event] |
| 25 | + (let [x-translation (oops/oget event "translationX") |
| 26 | + clamped-x (utils/clamp-value x-translation 0 track-width) |
| 27 | + reached-end? (>= clamped-x track-width)] |
| 28 | + (reanimated/set-shared-value x-pos clamped-x) |
| 29 | + (when (and reached-end? (not sliding-complete?)) |
| 30 | + (set-sliding-complete true) |
| 31 | + (when on-complete (on-complete reset-fn)))))) |
| 32 | + (gesture/on-end (fn [event] |
| 33 | + (let [x-translation (oops/oget event "translationX") |
| 34 | + reached-end? (>= x-translation track-width)] |
| 35 | + (when (not reached-end?) |
| 36 | + (animations/reset-track-position x-pos))))))) |
39 | 37 |
|
40 | 38 | (defn view
|
41 | 39 | "Options
|
|
55 | 53 | [track-width set-track-width] (rn/use-state nil)
|
56 | 54 | [sliding-complete?
|
57 | 55 | set-sliding-complete] (rn/use-state false)
|
58 |
| - [gestures-disabled? |
59 |
| - set-gestures-disabled] (rn/use-state disabled?) |
60 | 56 | on-track-layout (rn/use-callback
|
61 | 57 | #(set-track-width (oops/oget % "nativeEvent.layout.width")))
|
62 | 58 | reset-fn (rn/use-callback
|
63 | 59 | (fn []
|
64 | 60 | (set-sliding-complete false)
|
65 |
| - (set-gestures-disabled false) |
66 | 61 | (animations/reset-track-position x-pos)))
|
67 | 62 | dimensions (rn/use-callback
|
68 | 63 | (partial utils/get-dimensions
|
|
77 | 72 | [dimensions])
|
78 | 73 | custom-color (if (= type :danger) :danger customization-color)
|
79 | 74 | gesture (rn/use-memo #(drag-gesture x-pos
|
80 |
| - gestures-disabled? |
81 |
| - set-gestures-disabled |
82 | 75 | disabled?
|
83 | 76 | (dimensions :usable-track)
|
84 | 77 | sliding-complete?
|
85 | 78 | set-sliding-complete
|
86 | 79 | on-complete
|
87 | 80 | reset-fn)
|
88 |
| - [gestures-disabled? sliding-complete? disabled?])] |
| 81 | + [sliding-complete? disabled?])] |
89 | 82 | [gesture/gesture-detector
|
90 | 83 | {:gesture gesture}
|
91 | 84 | [reanimated/view
|
|
0 commit comments