react-native-screen-transitions 3.0.0-beta.4 → 3.0.0-beta.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (43) hide show
  1. package/lib/commonjs/shared/components/controllers/screen-lifecycle.js +12 -5
  2. package/lib/commonjs/shared/components/controllers/screen-lifecycle.js.map +1 -1
  3. package/lib/commonjs/shared/hooks/gestures/use-build-gestures.js +40 -28
  4. package/lib/commonjs/shared/hooks/gestures/use-build-gestures.js.map +1 -1
  5. package/lib/commonjs/shared/hooks/use-derived-value-state.js +33 -0
  6. package/lib/commonjs/shared/hooks/use-derived-value-state.js.map +1 -0
  7. package/lib/commonjs/shared/providers/gestures.js +6 -3
  8. package/lib/commonjs/shared/providers/gestures.js.map +1 -1
  9. package/lib/commonjs/shared/providers/utils/create-provider.js +41 -29
  10. package/lib/commonjs/shared/providers/utils/create-provider.js.map +1 -1
  11. package/lib/module/shared/components/controllers/screen-lifecycle.js +12 -5
  12. package/lib/module/shared/components/controllers/screen-lifecycle.js.map +1 -1
  13. package/lib/module/shared/hooks/gestures/use-build-gestures.js +42 -30
  14. package/lib/module/shared/hooks/gestures/use-build-gestures.js.map +1 -1
  15. package/lib/module/shared/hooks/use-derived-value-state.js +30 -0
  16. package/lib/module/shared/hooks/use-derived-value-state.js.map +1 -0
  17. package/lib/module/shared/providers/gestures.js +6 -3
  18. package/lib/module/shared/providers/gestures.js.map +1 -1
  19. package/lib/module/shared/providers/utils/create-provider.js +40 -27
  20. package/lib/module/shared/providers/utils/create-provider.js.map +1 -1
  21. package/lib/typescript/shared/components/controllers/screen-lifecycle.d.ts.map +1 -1
  22. package/lib/typescript/shared/hooks/gestures/use-build-gestures.d.ts +5 -2
  23. package/lib/typescript/shared/hooks/gestures/use-build-gestures.d.ts.map +1 -1
  24. package/lib/typescript/shared/hooks/use-derived-value-state.d.ts +9 -0
  25. package/lib/typescript/shared/hooks/use-derived-value-state.d.ts.map +1 -0
  26. package/lib/typescript/shared/providers/gestures.d.ts +4 -2
  27. package/lib/typescript/shared/providers/gestures.d.ts.map +1 -1
  28. package/lib/typescript/shared/providers/utils/create-provider.d.ts +11 -29
  29. package/lib/typescript/shared/providers/utils/create-provider.d.ts.map +1 -1
  30. package/package.json +1 -1
  31. package/src/shared/components/controllers/screen-lifecycle.tsx +11 -6
  32. package/src/shared/hooks/gestures/use-build-gestures.tsx +63 -35
  33. package/src/shared/hooks/use-derived-value-state.ts +41 -0
  34. package/src/shared/providers/gestures.tsx +17 -8
  35. package/src/shared/providers/utils/create-provider.tsx +77 -0
  36. package/lib/commonjs/shared/stores/navigator-dismiss-state.js +0 -23
  37. package/lib/commonjs/shared/stores/navigator-dismiss-state.js.map +0 -1
  38. package/lib/module/shared/stores/navigator-dismiss-state.js +0 -19
  39. package/lib/module/shared/stores/navigator-dismiss-state.js.map +0 -1
  40. package/lib/typescript/shared/stores/navigator-dismiss-state.d.ts +0 -7
  41. package/lib/typescript/shared/stores/navigator-dismiss-state.d.ts.map +0 -1
  42. package/src/shared/providers/utils/create-provider.ts +0 -64
  43. package/src/shared/stores/navigator-dismiss-state.ts +0 -17
@@ -1,14 +1,14 @@
1
1
  "use strict";
2
2
 
3
- import { useMemo } from "react";
3
+ import { StackActions } from "@react-navigation/native";
4
+ import { useCallback, useMemo } from "react";
4
5
  import { useWindowDimensions } from "react-native";
5
6
  import { Gesture } from "react-native-gesture-handler";
6
- import { runOnJS, useSharedValue } from "react-native-reanimated";
7
+ import { useSharedValue } from "react-native-reanimated";
7
8
  import { DEFAULT_GESTURE_ACTIVATION_AREA, DEFAULT_GESTURE_DIRECTION, DEFAULT_GESTURE_DRIVES_PROGRESS, DEFAULT_GESTURE_ENABLED, GESTURE_VELOCITY_IMPACT } from "../../constants";
8
9
  import { useKeys } from "../../providers/keys";
9
10
  import { AnimationStore } from "../../stores/animation-store";
10
11
  import { GestureStore } from "../../stores/gesture-store";
11
- import { NavigatorDismissState } from "../../stores/navigator-dismiss-state";
12
12
  import { GestureOffsetState } from "../../types/gesture";
13
13
  import { startScreenTransition } from "../../utils/animation/start-screen-transition";
14
14
  import { applyOffsetRules } from "../../utils/gesture/check-gesture-activation";
@@ -16,10 +16,10 @@ import { determineDismissal } from "../../utils/gesture/determine-dismissal";
16
16
  import { mapGestureToProgress } from "../../utils/gesture/map-gesture-to-progress";
17
17
  import { resetGestureValues } from "../../utils/gesture/reset-gesture-values";
18
18
  import { velocity } from "../../utils/gesture/velocity";
19
- import useStableCallback from "../use-stable-callback";
20
19
  import useStableCallbackValue from "../use-stable-callback-value";
21
20
  export const useBuildGestures = ({
22
- scrollConfig
21
+ scrollConfig,
22
+ parentContext
23
23
  }) => {
24
24
  const dimensions = useWindowDimensions();
25
25
  const {
@@ -30,7 +30,7 @@ export const useBuildGestures = ({
30
30
  y: 0
31
31
  });
32
32
  const gestureOffsetState = useSharedValue(GestureOffsetState.PENDING);
33
- const gestures = GestureStore.getRouteGestures(current.route.key);
33
+ const gestureAnimationValues = GestureStore.getRouteGestures(current.route.key);
34
34
  const animations = AnimationStore.getAll(current.route.key);
35
35
  const {
36
36
  gestureDirection = DEFAULT_GESTURE_DIRECTION,
@@ -51,15 +51,23 @@ export const useBuildGestures = ({
51
51
  horizontalInverted: directionsArray.includes("horizontal-inverted") || isBidirectional
52
52
  };
53
53
  }, [gestureDirection]);
54
- const setNavigatorDismissal = useStableCallback(() => {
55
- const key = current.navigation.getState().key;
56
- NavigatorDismissState.set(key, true);
57
- });
58
- const handleDismiss = useStableCallback(() => {
59
- const key = current.navigation.getState().key;
60
- current.navigation.goBack();
61
- NavigatorDismissState.remove(key);
62
- });
54
+ const handleDismiss = useCallback(() => {
55
+ // If an ancestor navigator is already dismissing, skip this dismiss to
56
+ // avoid racing with the parent
57
+ if (parentContext?.gestureAnimationValues.isDismissing?.value) {
58
+ return;
59
+ }
60
+ const state = current.navigation.getState();
61
+ const routeStillPresent = state.routes.some(route => route.key === current.route.key);
62
+ if (!routeStillPresent) {
63
+ return;
64
+ }
65
+ current.navigation.dispatch({
66
+ ...StackActions.pop(),
67
+ source: current.route.key,
68
+ target: state.key
69
+ });
70
+ }, [current, parentContext]);
63
71
  const onTouchesDown = useStableCallbackValue(e => {
64
72
  "worklet";
65
73
 
@@ -73,6 +81,12 @@ export const useBuildGestures = ({
73
81
  const onTouchesMove = useStableCallbackValue((e, manager) => {
74
82
  "worklet";
75
83
 
84
+ // If an ancestor navigator is already dismissing via gesture, block new gestures here.
85
+ if (parentContext?.gestureAnimationValues.isDismissing?.value) {
86
+ gestureOffsetState.value = GestureOffsetState.FAILED;
87
+ manager.fail();
88
+ return;
89
+ }
76
90
  const touch = e.changedTouches[0];
77
91
  const {
78
92
  isSwipingDown,
@@ -95,7 +109,7 @@ export const useBuildGestures = ({
95
109
  }
96
110
 
97
111
  // Keep pending until thresholds are met; no eager activation.
98
- if (gestures.isDragging?.value) {
112
+ if (gestureAnimationValues.isDragging?.value) {
99
113
  manager.activate();
100
114
  return;
101
115
  }
@@ -127,8 +141,8 @@ export const useBuildGestures = ({
127
141
  manager.fail();
128
142
  return;
129
143
  }
130
- if (shouldActivate && gestureOffsetState.value === GestureOffsetState.PASSED && !gestures.isDismissing?.value) {
131
- gestures.direction.value = activatedDirection;
144
+ if (shouldActivate && gestureOffsetState.value === GestureOffsetState.PASSED && !gestureAnimationValues.isDismissing?.value) {
145
+ gestureAnimationValues.direction.value = activatedDirection;
132
146
  manager.activate();
133
147
  return;
134
148
  }
@@ -136,8 +150,8 @@ export const useBuildGestures = ({
136
150
  const onStart = useStableCallbackValue(() => {
137
151
  "worklet";
138
152
 
139
- gestures.isDragging.value = 1;
140
- gestures.isDismissing.value = 0;
153
+ gestureAnimationValues.isDragging.value = 1;
154
+ gestureAnimationValues.isDismissing.value = 0;
141
155
  });
142
156
  const onUpdate = useStableCallbackValue(event => {
143
157
  "worklet";
@@ -151,10 +165,10 @@ export const useBuildGestures = ({
151
165
  width,
152
166
  height
153
167
  } = dimensions;
154
- gestures.x.value = translationX;
155
- gestures.y.value = translationY;
156
- gestures.normalizedX.value = Math.max(-1, Math.min(1, translationX / width));
157
- gestures.normalizedY.value = Math.max(-1, Math.min(1, translationY / height));
168
+ gestureAnimationValues.x.value = translationX;
169
+ gestureAnimationValues.y.value = translationY;
170
+ gestureAnimationValues.normalizedX.value = Math.max(-1, Math.min(1, translationX / width));
171
+ gestureAnimationValues.normalizedY.value = Math.max(-1, Math.min(1, translationY / height));
158
172
  let maxProgress = 0;
159
173
  const allowedDown = directions.vertical;
160
174
  const allowedUp = directions.verticalInverted;
@@ -195,14 +209,11 @@ export const useBuildGestures = ({
195
209
  const spec = shouldDismiss ? transitionSpec?.close : transitionSpec?.open;
196
210
  resetGestureValues({
197
211
  spec,
198
- gestures,
212
+ gestures: gestureAnimationValues,
199
213
  shouldDismiss,
200
214
  event,
201
215
  dimensions
202
216
  });
203
- if (shouldDismiss) {
204
- runOnJS(setNavigatorDismissal)();
205
- }
206
217
  const initialVelocity = velocity.calculateProgressVelocity({
207
218
  animations,
208
219
  shouldDismiss,
@@ -223,8 +234,9 @@ export const useBuildGestures = ({
223
234
  const panGesture = Gesture.Pan().enabled(gestureEnabled).manualActivation(true).onTouchesDown(onTouchesDown).onTouchesMove(onTouchesMove).onStart(onStart).onUpdate(onUpdate).onEnd(onEnd).blocksExternalGesture(nativeGesture);
224
235
  return {
225
236
  panGesture,
226
- nativeGesture
237
+ nativeGesture,
238
+ gestureAnimationValues
227
239
  };
228
- }, [gestureEnabled, onTouchesDown, onTouchesMove, onStart, onUpdate, onEnd]);
240
+ }, [gestureEnabled, onTouchesDown, onTouchesMove, onStart, onUpdate, onEnd, gestureAnimationValues]);
229
241
  };
230
242
  //# sourceMappingURL=use-build-gestures.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["useMemo","useWindowDimensions","Gesture","runOnJS","useSharedValue","DEFAULT_GESTURE_ACTIVATION_AREA","DEFAULT_GESTURE_DIRECTION","DEFAULT_GESTURE_DRIVES_PROGRESS","DEFAULT_GESTURE_ENABLED","GESTURE_VELOCITY_IMPACT","useKeys","AnimationStore","GestureStore","NavigatorDismissState","GestureOffsetState","startScreenTransition","applyOffsetRules","determineDismissal","mapGestureToProgress","resetGestureValues","velocity","useStableCallback","useStableCallbackValue","useBuildGestures","scrollConfig","dimensions","current","initialTouch","x","y","gestureOffsetState","PENDING","gestures","getRouteGestures","route","key","animations","getAll","gestureDirection","gestureEnabled","gestureVelocityImpact","gestureDrivesProgress","gestureActivationArea","gestureResponseDistance","transitionSpec","options","directions","directionsArray","Array","isArray","isBidirectional","includes","vertical","verticalInverted","horizontal","horizontalInverted","setNavigatorDismissal","navigation","getState","set","handleDismiss","goBack","remove","onTouchesDown","e","firstTouch","changedTouches","value","onTouchesMove","manager","touch","isSwipingDown","isSwipingUp","isSwipingRight","isSwipingLeft","activationArea","responseDistance","FAILED","fail","isDragging","activate","maxScrollY","contentHeight","layoutHeight","maxScrollX","contentWidth","layoutWidth","recognizedDirection","scrollCfg","shouldActivate","activatedDirection","PASSED","isDismissing","direction","onStart","onUpdate","event","gestureProgress","translationX","translationY","width","height","normalizedX","Math","max","min","normalizedY","maxProgress","allowedDown","allowedUp","allowedRight","allowedLeft","currentProgress","progress","onEnd","shouldDismiss","spec","close","open","initialVelocity","calculateProgressVelocity","target","onAnimationFinish","undefined","nativeGesture","Native","panGesture","Pan","enabled","manualActivation","blocksExternalGesture"],"sourceRoot":"../../../../../src","sources":["shared/hooks/gestures/use-build-gestures.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["StackActions","useCallback","useMemo","useWindowDimensions","Gesture","useSharedValue","DEFAULT_GESTURE_ACTIVATION_AREA","DEFAULT_GESTURE_DIRECTION","DEFAULT_GESTURE_DRIVES_PROGRESS","DEFAULT_GESTURE_ENABLED","GESTURE_VELOCITY_IMPACT","useKeys","AnimationStore","GestureStore","GestureOffsetState","startScreenTransition","applyOffsetRules","determineDismissal","mapGestureToProgress","resetGestureValues","velocity","useStableCallbackValue","useBuildGestures","scrollConfig","parentContext","dimensions","current","initialTouch","x","y","gestureOffsetState","PENDING","gestureAnimationValues","getRouteGestures","route","key","animations","getAll","gestureDirection","gestureEnabled","gestureVelocityImpact","gestureDrivesProgress","gestureActivationArea","gestureResponseDistance","transitionSpec","options","directions","directionsArray","Array","isArray","isBidirectional","includes","vertical","verticalInverted","horizontal","horizontalInverted","handleDismiss","isDismissing","value","state","navigation","getState","routeStillPresent","routes","some","dispatch","pop","source","target","onTouchesDown","e","firstTouch","changedTouches","onTouchesMove","manager","FAILED","fail","touch","isSwipingDown","isSwipingUp","isSwipingRight","isSwipingLeft","activationArea","responseDistance","isDragging","activate","maxScrollY","contentHeight","layoutHeight","maxScrollX","contentWidth","layoutWidth","recognizedDirection","scrollCfg","shouldActivate","activatedDirection","PASSED","direction","onStart","onUpdate","event","gestureProgress","translationX","translationY","width","height","normalizedX","Math","max","min","normalizedY","maxProgress","allowedDown","allowedUp","allowedRight","allowedLeft","currentProgress","progress","onEnd","shouldDismiss","spec","close","open","gestures","initialVelocity","calculateProgressVelocity","onAnimationFinish","undefined","nativeGesture","Native","panGesture","Pan","enabled","manualActivation","blocksExternalGesture"],"sourceRoot":"../../../../../src","sources":["shared/hooks/gestures/use-build-gestures.tsx"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,30 @@
1
+ "use strict";
2
+
3
+ import { useState } from "react";
4
+ import { executeOnUIRuntimeSync, runOnJS, useAnimatedReaction, useDerivedValue } from "react-native-reanimated";
5
+
6
+ /**
7
+ * Derives React state from a Reanimated worklet.
8
+ *
9
+ * @param processor - The worklet function that calculates the value
10
+ * @param dependencies - Array of dependencies for the worklet
11
+ * @returns The derived value as React State
12
+ */
13
+ export function useDerivedValueState(processor, dependencies = []) {
14
+ const derivedValue = useDerivedValue(processor, dependencies);
15
+ const [state, setState] = useState(() => {
16
+ const readOnUI = executeOnUIRuntimeSync(sv => {
17
+ "worklet";
18
+
19
+ return sv.value;
20
+ });
21
+ return readOnUI(derivedValue);
22
+ });
23
+ useAnimatedReaction(() => derivedValue.value, (curr, prev) => {
24
+ if (curr !== prev) {
25
+ runOnJS(setState)(curr);
26
+ }
27
+ });
28
+ return state;
29
+ }
30
+ //# sourceMappingURL=use-derived-value-state.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["useState","executeOnUIRuntimeSync","runOnJS","useAnimatedReaction","useDerivedValue","useDerivedValueState","processor","dependencies","derivedValue","state","setState","readOnUI","sv","value","curr","prev"],"sourceRoot":"../../../../src","sources":["shared/hooks/use-derived-value-state.ts"],"mappings":";;AAAA,SAASA,QAAQ,QAAQ,OAAO;AAChC,SACCC,sBAAsB,EACtBC,OAAO,EAEPC,mBAAmB,EACnBC,eAAe,QACT,yBAAyB;;AAEhC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,oBAAoBA,CACnCC,SAAkB,EAClBC,YAAmB,GAAG,EAAE,EACpB;EACJ,MAAMC,YAAY,GAAGJ,eAAe,CAACE,SAAS,EAAEC,YAAY,CAAC;EAE7D,MAAM,CAACE,KAAK,EAAEC,QAAQ,CAAC,GAAGV,QAAQ,CAAI,MAAM;IAC3C,MAAMW,QAAQ,GAAGV,sBAAsB,CAAEW,EAAkB,IAAK;MAC/D,SAAS;;MACT,OAAOA,EAAE,CAACC,KAAK;IAChB,CAAC,CAAC;IACF,OAAOF,QAAQ,CAACH,YAAY,CAAC;EAC9B,CAAC,CAAC;EAEFL,mBAAmB,CAClB,MAAMK,YAAY,CAACK,KAAK,EACxB,CAACC,IAAI,EAAEC,IAAI,KAAK;IACf,IAAID,IAAI,KAAKC,IAAI,EAAE;MAClBb,OAAO,CAACQ,QAAQ,CAAC,CAACI,IAAI,CAAC;IACxB;EACD,CACD,CAAC;EAED,OAAOL,KAAK;AACb","ignoreList":[]}
@@ -14,16 +14,19 @@ export const ScreenGestureProvider = ({
14
14
  const scrollConfig = useSharedValue(null);
15
15
  const {
16
16
  panGesture,
17
- nativeGesture
17
+ nativeGesture,
18
+ gestureAnimationValues
18
19
  } = useBuildGestures({
19
- scrollConfig
20
+ scrollConfig,
21
+ parentContext
20
22
  });
21
23
  const value = useMemo(() => ({
22
24
  panGesture,
23
25
  scrollConfig,
24
26
  nativeGesture,
27
+ gestureAnimationValues,
25
28
  parentContext: parentContext || null
26
- }), [panGesture, scrollConfig, nativeGesture, parentContext]);
29
+ }), [panGesture, scrollConfig, nativeGesture, gestureAnimationValues, parentContext]);
27
30
  return /*#__PURE__*/_jsx(GestureContext.Provider, {
28
31
  value: value,
29
32
  children: /*#__PURE__*/_jsx(GestureDetector, {
@@ -1 +1 @@
1
- {"version":3,"names":["createContext","useContext","useMemo","StyleSheet","View","GestureDetector","useSharedValue","useBuildGestures","jsx","_jsx","GestureContext","undefined","ScreenGestureProvider","children","parentContext","scrollConfig","panGesture","nativeGesture","value","Provider","gesture","style","styles","container","useGestureContext","context","Error","create","flex"],"sourceRoot":"../../../../src","sources":["shared/providers/gestures.tsx"],"mappings":";;AAAA,SAASA,aAAa,EAAEC,UAAU,EAAEC,OAAO,QAAQ,OAAO;AAC1D,SAASC,UAAU,EAAEC,IAAI,QAAQ,cAAc;AAE/C,SAASC,eAAe,QAAQ,8BAA8B;AAE9D,SAASC,cAAc,QAAQ,yBAAyB;AACxD,SAASC,gBAAgB,QAAQ,sCAAsC;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAsBxE,MAAMC,cAAc,gBAAGV,aAAa,CAAiCW,SAAS,CAAC;AAE/E,OAAO,MAAMC,qBAAqB,GAAGA,CAAC;EACrCC;AAC2B,CAAC,KAAK;EACjC,MAAMC,aAAa,GAAGb,UAAU,CAACS,cAAc,CAAC;EAEhD,MAAMK,YAAY,GAAGT,cAAc,CAAsB,IAAI,CAAC;EAE9D,MAAM;IAAEU,UAAU;IAAEC;EAAc,CAAC,GAAGV,gBAAgB,CAAC;IACtDQ;EACD,CAAC,CAAC;EAEF,MAAMG,KAAyB,GAAGhB,OAAO,CACxC,OAAO;IACNc,UAAU;IACVD,YAAY;IACZE,aAAa;IACbH,aAAa,EAAEA,aAAa,IAAI;EACjC,CAAC,CAAC,EACF,CAACE,UAAU,EAAED,YAAY,EAAEE,aAAa,EAAEH,aAAa,CACxD,CAAC;EAED,oBACCL,IAAA,CAACC,cAAc,CAACS,QAAQ;IAACD,KAAK,EAAEA,KAAM;IAAAL,QAAA,eACrCJ,IAAA,CAACJ,eAAe;MAACe,OAAO,EAAEJ,UAAW;MAAAH,QAAA,eACpCJ,IAAA,CAACL,IAAI;QAACiB,KAAK,EAAEC,MAAM,CAACC,SAAU;QAAAV,QAAA,EAAEA;MAAQ,CAAO;IAAC,CAChC;EAAC,CACM,CAAC;AAE5B,CAAC;AAED,OAAO,MAAMW,iBAAiB,GAAGA,CAAA,KAAM;EACtC,MAAMC,OAAO,GAAGxB,UAAU,CAACS,cAAc,CAAC;EAE1C,IAAI,CAACe,OAAO,EAAE;IACb,MAAM,IAAIC,KAAK,CACd,+DACD,CAAC;EACF;EAEA,OAAOD,OAAO;AACf,CAAC;AAED,MAAMH,MAAM,GAAGnB,UAAU,CAACwB,MAAM,CAAC;EAChCJ,SAAS,EAAE;IACVK,IAAI,EAAE;EACP;AACD,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["createContext","useContext","useMemo","StyleSheet","View","GestureDetector","useSharedValue","useBuildGestures","jsx","_jsx","GestureContext","undefined","ScreenGestureProvider","children","parentContext","scrollConfig","panGesture","nativeGesture","gestureAnimationValues","value","Provider","gesture","style","styles","container","useGestureContext","context","Error","create","flex"],"sourceRoot":"../../../../src","sources":["shared/providers/gestures.tsx"],"mappings":";;AAAA,SAASA,aAAa,EAAEC,UAAU,EAAEC,OAAO,QAAQ,OAAO;AAC1D,SAASC,UAAU,EAAEC,IAAI,QAAQ,cAAc;AAE/C,SAASC,eAAe,QAAQ,8BAA8B;AAE9D,SAASC,cAAc,QAAQ,yBAAyB;AACxD,SAASC,gBAAgB,QAAQ,sCAAsC;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAwBxE,MAAMC,cAAc,gBAAGV,aAAa,CAAiCW,SAAS,CAAC;AAE/E,OAAO,MAAMC,qBAAqB,GAAGA,CAAC;EAAEC;AAA+B,CAAC,KAAK;EAC5E,MAAMC,aAAa,GAAGb,UAAU,CAACS,cAAc,CAAC;EAEhD,MAAMK,YAAY,GAAGT,cAAc,CAAsB,IAAI,CAAC;EAE9D,MAAM;IAAEU,UAAU;IAAEC,aAAa;IAAEC;EAAuB,CAAC,GAC1DX,gBAAgB,CAAC;IAChBQ,YAAY;IACZD;EACD,CAAC,CAAC;EAEH,MAAMK,KAAyB,GAAGjB,OAAO,CACxC,OAAO;IACNc,UAAU;IACVD,YAAY;IACZE,aAAa;IACbC,sBAAsB;IACtBJ,aAAa,EAAEA,aAAa,IAAI;EACjC,CAAC,CAAC,EACF,CACCE,UAAU,EACVD,YAAY,EACZE,aAAa,EACbC,sBAAsB,EACtBJ,aAAa,CAEf,CAAC;EAED,oBACCL,IAAA,CAACC,cAAc,CAACU,QAAQ;IAACD,KAAK,EAAEA,KAAM;IAAAN,QAAA,eACrCJ,IAAA,CAACJ,eAAe;MAACgB,OAAO,EAAEL,UAAW;MAAAH,QAAA,eACpCJ,IAAA,CAACL,IAAI;QAACkB,KAAK,EAAEC,MAAM,CAACC,SAAU;QAAAX,QAAA,EAAEA;MAAQ,CAAO;IAAC,CAChC;EAAC,CACM,CAAC;AAE5B,CAAC;AAED,OAAO,MAAMY,iBAAiB,GAAGA,CAAA,KAAM;EACtC,MAAMC,OAAO,GAAGzB,UAAU,CAACS,cAAc,CAAC;EAE1C,IAAI,CAACgB,OAAO,EAAE;IACb,MAAM,IAAIC,KAAK,CACd,+DACD,CAAC;EACF;EAEA,OAAOD,OAAO;AACf,CAAC;AAED,MAAMH,MAAM,GAAGpB,UAAU,CAACyB,MAAM,CAAC;EAChCJ,SAAS,EAAE;IACVK,IAAI,EAAE;EACP;AACD,CAAC,CAAC","ignoreList":[]}
@@ -1,33 +1,46 @@
1
1
  "use strict";
2
2
 
3
3
  /**
4
- * Credits to
5
- * https://github.com/heroui-inc/heroui-native/blob/beta/src/helpers/utils/create-context.ts
4
+ * THANK YOU @MatiPl01
5
+ * https://github.com/MatiPl01/react-native-sortables/blob/main/packages/react-native-sortables/src/providers/utils/createProvider.tsx
6
+ * SUPER COOL AMAZING UTILITY
6
7
  */
7
- import * as React from "react";
8
- /**
9
- * Creates a named context, provider, and hook.
10
- *
11
- * @param options create context options
12
- */
13
- export function createContext(options = {}) {
14
- const {
15
- strict = true,
16
- errorMessage = "useContext: `context` is undefined. Seems you forgot to wrap component within the Provider",
17
- name
18
- } = options;
19
- const Context = /*#__PURE__*/React.createContext(undefined);
20
- Context.displayName = name;
21
- function useContext() {
22
- const context = React.useContext(Context);
23
- if (!context && strict) {
24
- const error = new Error(errorMessage);
25
- error.name = "ContextError";
26
- Error.captureStackTrace?.(error, useContext);
27
- throw error;
28
- }
29
- return context;
30
- }
31
- return [Context.Provider, useContext, Context];
8
+ import { createContext, useContext, useMemo } from "react";
9
+ import { jsx as _jsx } from "react/jsx-runtime";
10
+ export default function createProvider(name, options) {
11
+ return factory => {
12
+ const {
13
+ guarded = true
14
+ } = options ?? {};
15
+ const Context = /*#__PURE__*/createContext(null);
16
+ Context.displayName = name;
17
+ const Provider = props => {
18
+ const {
19
+ children = props.children,
20
+ enabled = true,
21
+ value
22
+ } = factory(props);
23
+ if (!value) {
24
+ throw new Error(`${name}Context value must be provided. You likely forgot to return it from the factory function.`);
25
+ }
26
+ const memoValue = useMemo(() => enabled ? value : null, [enabled, value]);
27
+ return /*#__PURE__*/_jsx(Context.Provider, {
28
+ value: memoValue,
29
+ children: children
30
+ });
31
+ };
32
+ const useEnhancedContext = () => {
33
+ const context = useContext(Context);
34
+ if (guarded && context === null) {
35
+ throw new Error(`${name} context must be used within a ${name}Provider`);
36
+ }
37
+ return context;
38
+ };
39
+ return {
40
+ [`${name}Context`]: Context,
41
+ [`${name}Provider`]: Provider,
42
+ [`use${name}Context`]: useEnhancedContext
43
+ };
44
+ };
32
45
  }
33
46
  //# sourceMappingURL=create-provider.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["React","createContext","options","strict","errorMessage","name","Context","undefined","displayName","useContext","context","error","Error","captureStackTrace","Provider"],"sourceRoot":"../../../../../src","sources":["shared/providers/utils/create-provider.ts"],"mappings":";;AAAA;AACA;AACA;AACA;AACA,OAAO,KAAKA,KAAK,MAAM,OAAO;AAwB9B;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,aAAaA,CAAcC,OAA6B,GAAG,CAAC,CAAC,EAAE;EAC9E,MAAM;IACLC,MAAM,GAAG,IAAI;IACbC,YAAY,GAAG,4FAA4F;IAC3GC;EACD,CAAC,GAAGH,OAAO;EAEX,MAAMI,OAAO,gBAAGN,KAAK,CAACC,aAAa,CAA0BM,SAAS,CAAC;EAEvED,OAAO,CAACE,WAAW,GAAGH,IAAI;EAE1B,SAASI,UAAUA,CAAA,EAAG;IACrB,MAAMC,OAAO,GAAGV,KAAK,CAACS,UAAU,CAACH,OAAO,CAAC;IAEzC,IAAI,CAACI,OAAO,IAAIP,MAAM,EAAE;MACvB,MAAMQ,KAAK,GAAG,IAAIC,KAAK,CAACR,YAAY,CAAC;MAErCO,KAAK,CAACN,IAAI,GAAG,cAAc;MAC3BO,KAAK,CAACC,iBAAiB,GAAGF,KAAK,EAAEF,UAAU,CAAC;MAC5C,MAAME,KAAK;IACZ;IAEA,OAAOD,OAAO;EACf;EAEA,OAAO,CACNJ,OAAO,CAACQ,QAAQ,EAChBL,UAAU,EACVH,OAAO,CACP;AACF","ignoreList":[]}
1
+ {"version":3,"names":["createContext","useContext","useMemo","jsx","_jsx","createProvider","name","options","factory","guarded","Context","displayName","Provider","props","children","enabled","value","Error","memoValue","useEnhancedContext","context"],"sourceRoot":"../../../../../src","sources":["shared/providers/utils/create-provider.tsx"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA,SACCA,aAAa,EAGbC,UAAU,EACVC,OAAO,QACD,OAAO;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAEf,eAAe,SAASC,cAAcA,CAGpCC,IAAkB,EAAEC,OAA+B,EAAE;EACtD,OACCC,OAIC,IACG;IACJ,MAAM;MAAEC,OAAO,GAAG;IAAK,CAAC,GAAGF,OAAO,IAAI,CAAC,CAAC;IAExC,MAAMG,OAAO,gBAAGV,aAAa,CAAsB,IAAI,CAAC;IACxDU,OAAO,CAACC,WAAW,GAAGL,IAAI;IAE1B,MAAMM,QAAiC,GAAIC,KAAK,IAAK;MACpD,MAAM;QACLC,QAAQ,GAAGD,KAAK,CAACC,QAAQ;QACzBC,OAAO,GAAG,IAAI;QACdC;MACD,CAAC,GAAGR,OAAO,CAACK,KAAK,CAAC;MAElB,IAAI,CAACG,KAAK,EAAE;QACX,MAAM,IAAIC,KAAK,CACd,GAAGX,IAAI,2FACR,CAAC;MACF;MAEA,MAAMY,SAAS,GAAGhB,OAAO,CACxB,MAAOa,OAAO,GAAGC,KAAK,GAAG,IAAK,EAC9B,CAACD,OAAO,EAAEC,KAAK,CAChB,CAAC;MAED,oBAAOZ,IAAA,CAACM,OAAO,CAACE,QAAQ;QAACI,KAAK,EAAEE,SAAU;QAAAJ,QAAA,EAAEA;MAAQ,CAAmB,CAAC;IACzE,CAAC;IAED,MAAMK,kBAAkB,GAAGA,CAAA,KAA2B;MACrD,MAAMC,OAAO,GAAGnB,UAAU,CAACS,OAAO,CAAC;MAEnC,IAAID,OAAO,IAAIW,OAAO,KAAK,IAAI,EAAE;QAChC,MAAM,IAAIH,KAAK,CACd,GAAGX,IAAI,kCAAkCA,IAAI,UAC9C,CAAC;MACF;MAEA,OAAOc,OAAO;IACf,CAAC;IAED,OAAO;MACN,CAAC,GAAGd,IAAI,SAAS,GAAGI,OAAO;MAC3B,CAAC,GAAGJ,IAAI,UAAU,GAAGM,QAAQ;MAC7B,CAAC,MAAMN,IAAI,SAAS,GAAGa;IACxB,CAAC;EASF,CAAC;AACF","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"screen-lifecycle.d.ts","sourceRoot":"","sources":["../../../../../src/shared/components/controllers/screen-lifecycle.tsx"],"names":[],"mappings":"AAaA,MAAM,WAAW,oBAAoB;IACpC,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;CAC1B;AAED;;GAEG;AACH,eAAO,MAAM,oCAAoC,GAAI,eAElD,oBAAoB,8BA8DtB,CAAC;AAEF;;GAEG;AAEH,eAAO,MAAM,mCAAmC,GAAI,eAEjD,oBAAoB,8BA8CtB,CAAC"}
1
+ {"version":3,"file":"screen-lifecycle.d.ts","sourceRoot":"","sources":["../../../../../src/shared/components/controllers/screen-lifecycle.tsx"],"names":[],"mappings":"AAcA,MAAM,WAAW,oBAAoB;IACpC,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;CAC1B;AAED;;GAEG;AACH,eAAO,MAAM,oCAAoC,GAAI,eAElD,oBAAoB,8BAiEtB,CAAC;AAEF;;GAEG;AAEH,eAAO,MAAM,mCAAmC,GAAI,eAEjD,oBAAoB,8BA+CtB,CAAC"}
@@ -1,12 +1,15 @@
1
1
  import { type GestureType } from "react-native-gesture-handler";
2
2
  import { type SharedValue } from "react-native-reanimated";
3
- import type { ScrollConfig } from "../../providers/gestures";
3
+ import type { GestureContextType, ScrollConfig } from "../../providers/gestures";
4
+ import { type GestureStoreMap } from "../../stores/gesture-store";
4
5
  interface BuildGesturesHookProps {
5
6
  scrollConfig: SharedValue<ScrollConfig | null>;
7
+ parentContext?: GestureContextType | null;
6
8
  }
7
- export declare const useBuildGestures: ({ scrollConfig, }: BuildGesturesHookProps) => {
9
+ export declare const useBuildGestures: ({ scrollConfig, parentContext, }: BuildGesturesHookProps) => {
8
10
  panGesture: GestureType;
9
11
  nativeGesture: GestureType;
12
+ gestureAnimationValues: GestureStoreMap;
10
13
  };
11
14
  export {};
12
15
  //# sourceMappingURL=use-build-gestures.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"use-build-gestures.d.ts","sourceRoot":"","sources":["../../../../../src/shared/hooks/gestures/use-build-gestures.tsx"],"names":[],"mappings":"AAEA,OAAO,EAIN,KAAK,WAAW,EAGhB,MAAM,8BAA8B,CAAC;AAEtC,OAAO,EAEN,KAAK,WAAW,EAEhB,MAAM,yBAAyB,CAAC;AAQjC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAe7D,UAAU,sBAAsB;IAC/B,YAAY,EAAE,WAAW,CAAC,YAAY,GAAG,IAAI,CAAC,CAAC;CAC/C;AAED,eAAO,MAAM,gBAAgB,GAAI,mBAE9B,sBAAsB,KAAG;IAC3B,UAAU,EAAE,WAAW,CAAC;IACxB,aAAa,EAAE,WAAW,CAAC;CAqR3B,CAAC"}
1
+ {"version":3,"file":"use-build-gestures.d.ts","sourceRoot":"","sources":["../../../../../src/shared/hooks/gestures/use-build-gestures.tsx"],"names":[],"mappings":"AAGA,OAAO,EAIN,KAAK,WAAW,EAGhB,MAAM,8BAA8B,CAAC;AAEtC,OAAO,EAAE,KAAK,WAAW,EAAkB,MAAM,yBAAyB,CAAC;AAQ3E,OAAO,KAAK,EACX,kBAAkB,EAClB,YAAY,EACZ,MAAM,0BAA0B,CAAC;AAGlC,OAAO,EAAgB,KAAK,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAWhF,UAAU,sBAAsB;IAC/B,YAAY,EAAE,WAAW,CAAC,YAAY,GAAG,IAAI,CAAC,CAAC;IAC/C,aAAa,CAAC,EAAE,kBAAkB,GAAG,IAAI,CAAC;CAC1C;AAED,eAAO,MAAM,gBAAgB,GAAI,kCAG9B,sBAAsB,KAAG;IAC3B,UAAU,EAAE,WAAW,CAAC;IACxB,aAAa,EAAE,WAAW,CAAC;IAC3B,sBAAsB,EAAE,eAAe,CAAC;CA+SxC,CAAC"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Derives React state from a Reanimated worklet.
3
+ *
4
+ * @param processor - The worklet function that calculates the value
5
+ * @param dependencies - Array of dependencies for the worklet
6
+ * @returns The derived value as React State
7
+ */
8
+ export declare function useDerivedValueState<T>(processor: () => T, dependencies?: any[]): T;
9
+ //# sourceMappingURL=use-derived-value-state.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-derived-value-state.d.ts","sourceRoot":"","sources":["../../../../src/shared/hooks/use-derived-value-state.ts"],"names":[],"mappings":"AASA;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAAC,CAAC,EACrC,SAAS,EAAE,MAAM,CAAC,EAClB,YAAY,GAAE,GAAG,EAAO,GACtB,CAAC,CAqBH"}
@@ -1,5 +1,6 @@
1
1
  import type { GestureType } from "react-native-gesture-handler";
2
2
  import type { SharedValue } from "react-native-reanimated";
3
+ import type { GestureStoreMap } from "../stores/gesture-store";
3
4
  export type ScrollConfig = {
4
5
  x: number;
5
6
  y: number;
@@ -12,12 +13,13 @@ export interface GestureContextType {
12
13
  panGesture: GestureType;
13
14
  nativeGesture: GestureType;
14
15
  scrollConfig: SharedValue<ScrollConfig | null>;
16
+ gestureAnimationValues: GestureStoreMap;
15
17
  parentContext: GestureContextType | null;
16
18
  }
17
- type ScreenGestureProviderProps = {
19
+ type GestureProviderProps = {
18
20
  children: React.ReactNode;
19
21
  };
20
- export declare const ScreenGestureProvider: ({ children, }: ScreenGestureProviderProps) => import("react/jsx-runtime").JSX.Element;
22
+ export declare const ScreenGestureProvider: ({ children }: GestureProviderProps) => import("react/jsx-runtime").JSX.Element;
21
23
  export declare const useGestureContext: () => GestureContextType;
22
24
  export {};
23
25
  //# sourceMappingURL=gestures.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"gestures.d.ts","sourceRoot":"","sources":["../../../../src/shared/providers/gestures.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAEhE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAI3D,MAAM,MAAM,YAAY,GAAG;IAC1B,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,MAAM,WAAW,kBAAkB;IAClC,UAAU,EAAE,WAAW,CAAC;IACxB,aAAa,EAAE,WAAW,CAAC;IAC3B,YAAY,EAAE,WAAW,CAAC,YAAY,GAAG,IAAI,CAAC,CAAC;IAC/C,aAAa,EAAE,kBAAkB,GAAG,IAAI,CAAC;CACzC;AAED,KAAK,0BAA0B,GAAG;IACjC,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;CAC1B,CAAC;AAIF,eAAO,MAAM,qBAAqB,GAAI,eAEnC,0BAA0B,4CA0B5B,CAAC;AAEF,eAAO,MAAM,iBAAiB,0BAU7B,CAAC"}
1
+ {"version":3,"file":"gestures.d.ts","sourceRoot":"","sources":["../../../../src/shared/providers/gestures.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAEhE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAG3D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAE/D,MAAM,MAAM,YAAY,GAAG;IAC1B,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,MAAM,WAAW,kBAAkB;IAClC,UAAU,EAAE,WAAW,CAAC;IACxB,aAAa,EAAE,WAAW,CAAC;IAC3B,YAAY,EAAE,WAAW,CAAC,YAAY,GAAG,IAAI,CAAC,CAAC;IAC/C,sBAAsB,EAAE,eAAe,CAAC;IACxC,aAAa,EAAE,kBAAkB,GAAG,IAAI,CAAC;CACzC;AAED,KAAK,oBAAoB,GAAG;IAC3B,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;CAC1B,CAAC;AAIF,eAAO,MAAM,qBAAqB,GAAI,cAAc,oBAAoB,4CAmCvE,CAAC;AAEF,eAAO,MAAM,iBAAiB,0BAU7B,CAAC"}
@@ -1,32 +1,14 @@
1
1
  /**
2
- * Credits to
3
- * https://github.com/heroui-inc/heroui-native/blob/beta/src/helpers/utils/create-context.ts
2
+ * THANK YOU @MatiPl01
3
+ * https://github.com/MatiPl01/react-native-sortables/blob/main/packages/react-native-sortables/src/providers/utils/createProvider.tsx
4
+ * SUPER COOL AMAZING UTILITY
4
5
  */
5
- import * as React from "react";
6
- export interface CreateContextOptions {
7
- /**
8
- * If `true`, React will throw if context is `null` or `undefined`
9
- * In some cases, you might want to support nested context, so you can set it to `false`
10
- */
11
- strict?: boolean;
12
- /**
13
- * Error message to throw if the context is `undefined`
14
- */
15
- errorMessage?: string;
16
- /**
17
- * The display name of the context
18
- */
19
- name?: string;
20
- }
21
- export type CreateContextReturn<T> = [
22
- React.Provider<T>,
23
- () => T,
24
- React.Context<T>
25
- ];
26
- /**
27
- * Creates a named context, provider, and hook.
28
- *
29
- * @param options create context options
30
- */
31
- export declare function createContext<ContextType>(options?: CreateContextOptions): CreateContextReturn<ContextType>;
6
+ import { type PropsWithChildren, type ReactNode } from "react";
7
+ export default function createProvider<ProviderName extends string, Guarded extends boolean = true>(name: ProviderName, options?: {
8
+ guarded?: Guarded;
9
+ }): <ProviderProps extends PropsWithChildren<object>, ContextValue>(factory: (props: ProviderProps) => {
10
+ value?: ContextValue;
11
+ enabled?: boolean;
12
+ children?: ReactNode;
13
+ }) => { [P in ProviderName as `${P}Context`]: React.Context<ContextValue>; } & { [P in ProviderName as `${P}Provider`]: React.FC<ProviderProps>; } & { [P in ProviderName as `use${P}Context`]: () => Guarded extends true ? ContextValue : ContextValue | null; };
32
14
  //# sourceMappingURL=create-provider.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"create-provider.d.ts","sourceRoot":"","sources":["../../../../../src/shared/providers/utils/create-provider.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,MAAM,WAAW,oBAAoB;IACpC;;;OAGG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB;;OAEG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;CACd;AAED,MAAM,MAAM,mBAAmB,CAAC,CAAC,IAAI;IACpC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC;IACjB,MAAM,CAAC;IACP,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;CAChB,CAAC;AAEF;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,WAAW,EAAE,OAAO,GAAE,oBAAyB,GA6BvE,mBAAmB,CAAC,WAAW,CAAC,CACrC"}
1
+ {"version":3,"file":"create-provider.d.ts","sourceRoot":"","sources":["../../../../../src/shared/providers/utils/create-provider.tsx"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EAEN,KAAK,iBAAiB,EACtB,KAAK,SAAS,EAGd,MAAM,OAAO,CAAC;AAEf,MAAM,CAAC,OAAO,UAAU,cAAc,CACrC,YAAY,SAAS,MAAM,EAC3B,OAAO,SAAS,OAAO,GAAG,IAAI,EAC7B,IAAI,EAAE,YAAY,EAAE,OAAO,CAAC,EAAE;IAAE,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,IAC5C,aAAa,SAAS,iBAAiB,CAAC,MAAM,CAAC,EAAE,YAAY,EACpE,SAAS,CAAC,KAAK,EAAE,aAAa,KAAK;IAClC,KAAK,CAAC,EAAE,YAAY,CAAC;IACrB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,SAAS,CAAC;CACrB,KA4CI,GACH,CAAC,IAAI,YAAY,IAAI,GAAG,CAAC,SAAS,GAAG,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,GACjE,GAAG,GACF,CAAC,IAAI,YAAY,IAAI,GAAG,CAAC,UAAU,GAAG,KAAK,CAAC,EAAE,CAAC,aAAa,CAAC,GAC9D,GAAG,GACF,CAAC,IAAI,YAAY,IAAI,MAAM,CAAC,SAAS,GAAG,MAAM,OAAO,SAAS,IAAI,GAChE,YAAY,GACZ,YAAY,GAAG,IAAI,GACtB,CAEF"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "react-native-screen-transitions",
3
- "version": "3.0.0-beta.4",
3
+ "version": "3.0.0-beta.6",
4
4
  "description": "Easy screen transitions for React Native and Expo",
5
5
  "author": "Ed",
6
6
  "license": "MIT",
@@ -4,10 +4,11 @@ import type { BlankStackDescriptor } from "../../../blank-stack/types";
4
4
  import { useStackNavigationContext } from "../../../blank-stack/utils/with-stack-navigation";
5
5
  import type { NativeStackDescriptor } from "../../../native-stack/types";
6
6
  import { useParentGestureRegistry } from "../../hooks/gestures/use-parent-gesture-registry";
7
+ import { useDerivedValueState } from "../../hooks/use-derived-value-state";
7
8
  import useStableCallback from "../../hooks/use-stable-callback";
9
+ import { useGestureContext } from "../../providers/gestures";
8
10
  import { useKeys } from "../../providers/keys";
9
11
  import { AnimationStore } from "../../stores/animation-store";
10
- import { NavigatorDismissState } from "../../stores/navigator-dismiss-state";
11
12
  import { resetStoresForScreen } from "../../stores/utils/reset-stores-for-screen";
12
13
  import { startScreenTransition } from "../../utils/animation/start-screen-transition";
13
14
 
@@ -22,19 +23,22 @@ export const NativeStackScreenLifecycleController = ({
22
23
  children,
23
24
  }: ScreenLifecycleProps) => {
24
25
  const { current } = useKeys<NativeStackDescriptor>();
26
+ const { parentContext } = useGestureContext();
27
+
28
+ const isParentDismissingViaGesture = useDerivedValueState(() => {
29
+ "worklet";
30
+ return parentContext?.gestureAnimationValues.isDismissing?.value ?? false;
31
+ });
25
32
 
26
33
  const animations = AnimationStore.getAll(current.route.key);
27
34
 
28
35
  const handleBeforeRemove = useStableCallback((e: any) => {
29
- const key = current.navigation.getParent()?.getState().key;
30
- const requestedDismissOnNavigator = NavigatorDismissState.get(key);
31
-
32
36
  const isEnabled = current.options.enableTransitions;
33
- const isRequestedDismissOnNavigator = requestedDismissOnNavigator;
37
+
34
38
  const isFirstScreen = current.navigation.getState().index === 0;
35
39
 
36
40
  // If transitions are disabled, or the dismissal was on the local root, or this is the first screen of the stack, reset the stores
37
- if (!isEnabled || isRequestedDismissOnNavigator || isFirstScreen) {
41
+ if (!isEnabled || isParentDismissingViaGesture || isFirstScreen) {
38
42
  resetStoresForScreen(current);
39
43
  return;
40
44
  }
@@ -110,6 +114,7 @@ export const BlankStackScreenLifecycleController = ({
110
114
  return;
111
115
  }
112
116
  handleCloseRoute({ route: current.route });
117
+ resetStoresForScreen(current);
113
118
  });
114
119
 
115
120
  useAnimatedReaction(