react-native-screen-transitions 2.1.0 → 2.2.1

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 (78) hide show
  1. package/lib/commonjs/components/bound-capture.js +7 -2
  2. package/lib/commonjs/components/bound-capture.js.map +1 -1
  3. package/lib/commonjs/components/controllers/screen-lifecycle.js +3 -9
  4. package/lib/commonjs/components/controllers/screen-lifecycle.js.map +1 -1
  5. package/lib/commonjs/components/create-transition-aware-component.js +12 -2
  6. package/lib/commonjs/components/create-transition-aware-component.js.map +1 -1
  7. package/lib/commonjs/components/root-transition-aware.js +3 -1
  8. package/lib/commonjs/components/root-transition-aware.js.map +1 -1
  9. package/lib/commonjs/hooks/animation/use-associated-style.js +41 -6
  10. package/lib/commonjs/hooks/animation/use-associated-style.js.map +1 -1
  11. package/lib/commonjs/hooks/bounds/use-bound-registry.js +9 -16
  12. package/lib/commonjs/hooks/bounds/use-bound-registry.js.map +1 -1
  13. package/lib/commonjs/providers/transition-styles.js +5 -1
  14. package/lib/commonjs/providers/transition-styles.js.map +1 -1
  15. package/lib/commonjs/stores/bounds/_utils.js +118 -0
  16. package/lib/commonjs/stores/bounds/_utils.js.map +1 -0
  17. package/lib/commonjs/stores/bounds/index.js +116 -0
  18. package/lib/commonjs/stores/bounds/index.js.map +1 -0
  19. package/lib/commonjs/stores/utils/reset-stores-for-screen.js +1 -4
  20. package/lib/commonjs/stores/utils/reset-stores-for-screen.js.map +1 -1
  21. package/lib/module/components/bound-capture.js +7 -2
  22. package/lib/module/components/bound-capture.js.map +1 -1
  23. package/lib/module/components/controllers/screen-lifecycle.js +3 -9
  24. package/lib/module/components/controllers/screen-lifecycle.js.map +1 -1
  25. package/lib/module/components/create-transition-aware-component.js +12 -2
  26. package/lib/module/components/create-transition-aware-component.js.map +1 -1
  27. package/lib/module/components/root-transition-aware.js +3 -1
  28. package/lib/module/components/root-transition-aware.js.map +1 -1
  29. package/lib/module/hooks/animation/use-associated-style.js +42 -7
  30. package/lib/module/hooks/animation/use-associated-style.js.map +1 -1
  31. package/lib/module/hooks/bounds/use-bound-registry.js +9 -16
  32. package/lib/module/hooks/bounds/use-bound-registry.js.map +1 -1
  33. package/lib/module/providers/transition-styles.js +5 -1
  34. package/lib/module/providers/transition-styles.js.map +1 -1
  35. package/lib/module/stores/bounds/_utils.js +113 -0
  36. package/lib/module/stores/bounds/_utils.js.map +1 -0
  37. package/lib/module/stores/bounds/index.js +112 -0
  38. package/lib/module/stores/bounds/index.js.map +1 -0
  39. package/lib/module/stores/utils/reset-stores-for-screen.js +1 -4
  40. package/lib/module/stores/utils/reset-stores-for-screen.js.map +1 -1
  41. package/lib/typescript/components/bound-capture.d.ts.map +1 -1
  42. package/lib/typescript/components/create-transition-aware-component.d.ts.map +1 -1
  43. package/lib/typescript/hooks/animation/use-associated-style.d.ts +4 -4
  44. package/lib/typescript/hooks/animation/use-associated-style.d.ts.map +1 -1
  45. package/lib/typescript/hooks/bounds/use-bound-registry.d.ts +0 -1
  46. package/lib/typescript/hooks/bounds/use-bound-registry.d.ts.map +1 -1
  47. package/lib/typescript/index.d.ts +4 -0
  48. package/lib/typescript/index.d.ts.map +1 -1
  49. package/lib/typescript/providers/transition-styles.d.ts +4 -1
  50. package/lib/typescript/providers/transition-styles.d.ts.map +1 -1
  51. package/lib/typescript/stores/bounds/_utils.d.ts +24 -0
  52. package/lib/typescript/stores/bounds/_utils.d.ts.map +1 -0
  53. package/lib/typescript/stores/{bounds.d.ts → bounds/index.d.ts} +3 -13
  54. package/lib/typescript/stores/bounds/index.d.ts.map +1 -0
  55. package/lib/typescript/stores/utils/reset-stores-for-screen.d.ts +1 -3
  56. package/lib/typescript/stores/utils/reset-stores-for-screen.d.ts.map +1 -1
  57. package/lib/typescript/types/core.d.ts +8 -0
  58. package/lib/typescript/types/core.d.ts.map +1 -1
  59. package/package.json +3 -3
  60. package/src/__tests__/bounds.store.test.ts +185 -0
  61. package/src/components/bound-capture.tsx +5 -2
  62. package/src/components/controllers/screen-lifecycle.tsx +3 -3
  63. package/src/components/create-transition-aware-component.tsx +19 -3
  64. package/src/components/root-transition-aware.tsx +1 -1
  65. package/src/hooks/animation/use-associated-style.tsx +42 -7
  66. package/src/hooks/bounds/use-bound-registry.tsx +10 -21
  67. package/src/providers/transition-styles.tsx +8 -2
  68. package/src/stores/bounds/_utils.ts +161 -0
  69. package/src/stores/bounds/index.ts +125 -0
  70. package/src/stores/utils/reset-stores-for-screen.ts +1 -7
  71. package/src/types/core.ts +9 -0
  72. package/LICENSE +0 -21
  73. package/lib/commonjs/stores/bounds.js +0 -205
  74. package/lib/commonjs/stores/bounds.js.map +0 -1
  75. package/lib/module/stores/bounds.js +0 -201
  76. package/lib/module/stores/bounds.js.map +0 -1
  77. package/lib/typescript/stores/bounds.d.ts.map +0 -1
  78. package/src/stores/bounds.ts +0 -227
@@ -2,6 +2,7 @@
2
2
 
3
3
  import { useMemo } from "react";
4
4
  import { Gesture, GestureDetector } from "react-native-gesture-handler";
5
+ import { useKeys } from "../providers/keys";
5
6
  import { Bounds } from "../stores/bounds";
6
7
  import { jsx as _jsx } from "react/jsx-runtime";
7
8
  export const BoundCapture = ({
@@ -9,16 +10,20 @@ export const BoundCapture = ({
9
10
  children,
10
11
  measure
11
12
  }) => {
13
+ const {
14
+ current
15
+ } = useKeys();
16
+ const routeKey = current.route.key;
12
17
  const tapGesture = useMemo(() => {
13
18
  return Gesture.Tap().onStart(() => {
14
19
  "worklet";
15
20
 
16
21
  if (sharedBoundTag) {
17
- Bounds.setActiveBoundId(sharedBoundTag);
22
+ Bounds.setRouteActive(routeKey, sharedBoundTag);
18
23
  measure();
19
24
  }
20
25
  });
21
- }, [sharedBoundTag, measure]);
26
+ }, [sharedBoundTag, measure, routeKey]);
22
27
  if (!sharedBoundTag) return children;
23
28
  return /*#__PURE__*/_jsx(GestureDetector, {
24
29
  gesture: tapGesture,
@@ -1 +1 @@
1
- {"version":3,"names":["useMemo","Gesture","GestureDetector","Bounds","jsx","_jsx","BoundCapture","sharedBoundTag","children","measure","tapGesture","Tap","onStart","setActiveBoundId","gesture"],"sourceRoot":"../../../src","sources":["components/bound-capture.tsx"],"mappings":";;AAAA,SAASA,OAAO,QAAQ,OAAO;AAC/B,SAASC,OAAO,EAAEC,eAAe,QAAQ,8BAA8B;AACvE,SAASC,MAAM,QAAQ,kBAAkB;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAQ1C,OAAO,MAAMC,YAAY,GAAGA,CAAC;EAC5BC,cAAc;EACdC,QAAQ;EACRC;AACoB,CAAC,KAAK;EAC1B,MAAMC,UAAU,GAAGV,OAAO,CAAC,MAAM;IAChC,OAAOC,OAAO,CAACU,GAAG,CAAC,CAAC,CAACC,OAAO,CAAC,MAAM;MAClC,SAAS;;MACT,IAAIL,cAAc,EAAE;QACnBJ,MAAM,CAACU,gBAAgB,CAACN,cAAc,CAAC;QACvCE,OAAO,CAAC,CAAC;MACV;IACD,CAAC,CAAC;EACH,CAAC,EAAE,CAACF,cAAc,EAAEE,OAAO,CAAC,CAAC;EAE7B,IAAI,CAACF,cAAc,EAAE,OAAOC,QAAQ;EAEpC,oBAAOH,IAAA,CAACH,eAAe;IAACY,OAAO,EAAEJ,UAAW;IAAAF,QAAA,EAAEA;EAAQ,CAAkB,CAAC;AAC1E,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["useMemo","Gesture","GestureDetector","useKeys","Bounds","jsx","_jsx","BoundCapture","sharedBoundTag","children","measure","current","routeKey","route","key","tapGesture","Tap","onStart","setRouteActive","gesture"],"sourceRoot":"../../../src","sources":["components/bound-capture.tsx"],"mappings":";;AAAA,SAASA,OAAO,QAAQ,OAAO;AAC/B,SAASC,OAAO,EAAEC,eAAe,QAAQ,8BAA8B;AACvE,SAASC,OAAO,QAAQ,mBAAmB;AAC3C,SAASC,MAAM,QAAQ,kBAAkB;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAQ1C,OAAO,MAAMC,YAAY,GAAGA,CAAC;EAC5BC,cAAc;EACdC,QAAQ;EACRC;AACoB,CAAC,KAAK;EAC1B,MAAM;IAAEC;EAAQ,CAAC,GAAGR,OAAO,CAAC,CAAC;EAC7B,MAAMS,QAAQ,GAAGD,OAAO,CAACE,KAAK,CAACC,GAAG;EAClC,MAAMC,UAAU,GAAGf,OAAO,CAAC,MAAM;IAChC,OAAOC,OAAO,CAACe,GAAG,CAAC,CAAC,CAACC,OAAO,CAAC,MAAM;MAClC,SAAS;;MACT,IAAIT,cAAc,EAAE;QACnBJ,MAAM,CAACc,cAAc,CAACN,QAAQ,EAAEJ,cAAc,CAAC;QAC/CE,OAAO,CAAC,CAAC;MACV;IACD,CAAC,CAAC;EACH,CAAC,EAAE,CAACF,cAAc,EAAEE,OAAO,EAAEE,QAAQ,CAAC,CAAC;EAEvC,IAAI,CAACJ,cAAc,EAAE,OAAOC,QAAQ;EAEpC,oBAAOH,IAAA,CAACJ,eAAe;IAACiB,OAAO,EAAEJ,UAAW;IAAAN,QAAA,EAAEA;EAAQ,CAAkB,CAAC;AAC1E,CAAC","ignoreList":[]}
@@ -21,17 +21,13 @@ export const ScreenLifecycleController = ({
21
21
 
22
22
  // Don't run e.preventDefault when the dismissal was on the local root
23
23
  if (requestedDismissOnNavigator) {
24
- resetStoresForScreen(current, {
25
- clearActive: true
26
- });
24
+ resetStoresForScreen(current);
27
25
  return;
28
26
  }
29
27
 
30
28
  // Don't run e.preventDefault when this is the first screen of the stack
31
29
  if (current.navigation.getState().index === 0) {
32
- resetStoresForScreen(current, {
33
- clearActive: true
34
- });
30
+ resetStoresForScreen(current);
35
31
  return;
36
32
  }
37
33
  e.preventDefault();
@@ -41,9 +37,7 @@ export const ScreenLifecycleController = ({
41
37
 
42
38
  // we'll ensure the dispatch is complete before resetting stores
43
39
  requestAnimationFrame(() => {
44
- resetStoresForScreen(current, {
45
- clearActive: false
46
- });
40
+ resetStoresForScreen(current);
47
41
  });
48
42
  }
49
43
  };
@@ -1 +1 @@
1
- {"version":3,"names":["useEffect","useLayoutEffect","useParentGestureRegistry","useStableCallback","useKeys","Animations","NavigatorDismissState","resetStoresForScreen","runTransition","ScreenLifecycleController","children","current","animations","getAll","route","key","handleBeforeRemove","e","navigation","getParent","getState","requestedDismissOnNavigator","get","clearActive","index","preventDefault","onFinish","finished","dispatch","data","action","requestAnimationFrame","target","spec","options","transitionSpec","handleInitialize","unsubscribe","addListener"],"sourceRoot":"../../../../src","sources":["components/controllers/screen-lifecycle.tsx"],"mappings":";;AAAA,SAASA,SAAS,EAAEC,eAAe,QAAQ,OAAO;AAClD,SAASC,wBAAwB,QAAQ,kDAAkD;AAC3F,OAAOC,iBAAiB,MAAM,iCAAiC;AAC/D,SAASC,OAAO,QAAQ,sBAAsB;AAC9C,SAASC,UAAU,QAAQ,yBAAyB;AACpD,SAASC,qBAAqB,QAAQ,sCAAsC;AAC5E,SAASC,oBAAoB,QAAQ,4CAA4C;AACjF,SAASC,aAAa,QAAQ,sCAAsC;AAMpE,OAAO,MAAMC,yBAAyB,GAAGA,CAAC;EACzCC;AACqB,CAAC,KAAK;EAC3B,MAAM;IAAEC;EAAQ,CAAC,GAAGP,OAAO,CAAC,CAAC;EAE7B,MAAMQ,UAAU,GAAGP,UAAU,CAACQ,MAAM,CAACF,OAAO,CAACG,KAAK,CAACC,GAAG,CAAC;EAEvD,MAAMC,kBAAkB,GAAGb,iBAAiB,CAAEc,CAAM,IAAK;IACxD,MAAMF,GAAG,GAAGJ,OAAO,CAACO,UAAU,CAACC,SAAS,CAAC,CAAC,EAAEC,QAAQ,CAAC,CAAC,CAACL,GAAG;IAC1D,MAAMM,2BAA2B,GAAGf,qBAAqB,CAACgB,GAAG,CAACP,GAAG,CAAC;;IAElE;IACA,IAAIM,2BAA2B,EAAE;MAChCd,oBAAoB,CAACI,OAAO,EAAE;QAAEY,WAAW,EAAE;MAAK,CAAC,CAAC;MACpD;IACD;;IAEA;IACA,IAAIZ,OAAO,CAACO,UAAU,CAACE,QAAQ,CAAC,CAAC,CAACI,KAAK,KAAK,CAAC,EAAE;MAC9CjB,oBAAoB,CAACI,OAAO,EAAE;QAAEY,WAAW,EAAE;MAAK,CAAC,CAAC;MACpD;IACD;IAEAN,CAAC,CAACQ,cAAc,CAAC,CAAC;IAClB,MAAMC,QAAQ,GAAIC,QAAiB,IAAK;MACvC,IAAIA,QAAQ,EAAE;QACbhB,OAAO,CAACO,UAAU,CAACU,QAAQ,CAACX,CAAC,CAACY,IAAI,CAACC,MAAM,CAAC;;QAE1C;QACAC,qBAAqB,CAAC,MAAM;UAC3BxB,oBAAoB,CAACI,OAAO,EAAE;YAAEY,WAAW,EAAE;UAAM,CAAC,CAAC;QACtD,CAAC,CAAC;MACH;IACD,CAAC;IAEDf,aAAa,CAAC;MACbwB,MAAM,EAAE,OAAO;MACfC,IAAI,EAAEtB,OAAO,CAACuB,OAAO,CAACC,cAAc;MACpCT,QAAQ;MACRd;IACD,CAAC,CAAC;EACH,CAAC,CAAC;EAEF,MAAMwB,gBAAgB,GAAGjC,iBAAiB,CAAC,MAAM;IAChDK,aAAa,CAAC;MACbwB,MAAM,EAAE,MAAM;MACdC,IAAI,EAAEtB,OAAO,CAACuB,OAAO,CAACC,cAAc;MACpCvB;IACD,CAAC,CAAC;EACH,CAAC,CAAC;EAEFZ,SAAS,CAAC,MAAM;IACf,MAAMqC,WAAW,GAAG1B,OAAO,CAACO,UAAU,CAACoB,WAAW,CACjD,cAAc,EACdtB,kBACD,CAAC;IAED,OAAOqB,WAAW;EACnB,CAAC,EAAE,CAAC1B,OAAO,CAACO,UAAU,EAAEF,kBAAkB,CAAC,CAAC;EAE5Cf,eAAe,CAACmC,gBAAgB,EAAE,EAAE,CAAC;;EAErC;EACAlC,wBAAwB,CAAC,CAAC;EAE1B,OAAOQ,QAAQ;AAChB,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["useEffect","useLayoutEffect","useParentGestureRegistry","useStableCallback","useKeys","Animations","NavigatorDismissState","resetStoresForScreen","runTransition","ScreenLifecycleController","children","current","animations","getAll","route","key","handleBeforeRemove","e","navigation","getParent","getState","requestedDismissOnNavigator","get","index","preventDefault","onFinish","finished","dispatch","data","action","requestAnimationFrame","target","spec","options","transitionSpec","handleInitialize","unsubscribe","addListener"],"sourceRoot":"../../../../src","sources":["components/controllers/screen-lifecycle.tsx"],"mappings":";;AAAA,SAASA,SAAS,EAAEC,eAAe,QAAQ,OAAO;AAClD,SAASC,wBAAwB,QAAQ,kDAAkD;AAC3F,OAAOC,iBAAiB,MAAM,iCAAiC;AAC/D,SAASC,OAAO,QAAQ,sBAAsB;AAC9C,SAASC,UAAU,QAAQ,yBAAyB;AACpD,SAASC,qBAAqB,QAAQ,sCAAsC;AAC5E,SAASC,oBAAoB,QAAQ,4CAA4C;AACjF,SAASC,aAAa,QAAQ,sCAAsC;AAMpE,OAAO,MAAMC,yBAAyB,GAAGA,CAAC;EACzCC;AACqB,CAAC,KAAK;EAC3B,MAAM;IAAEC;EAAQ,CAAC,GAAGP,OAAO,CAAC,CAAC;EAE7B,MAAMQ,UAAU,GAAGP,UAAU,CAACQ,MAAM,CAACF,OAAO,CAACG,KAAK,CAACC,GAAG,CAAC;EAEvD,MAAMC,kBAAkB,GAAGb,iBAAiB,CAAEc,CAAM,IAAK;IACxD,MAAMF,GAAG,GAAGJ,OAAO,CAACO,UAAU,CAACC,SAAS,CAAC,CAAC,EAAEC,QAAQ,CAAC,CAAC,CAACL,GAAG;IAC1D,MAAMM,2BAA2B,GAAGf,qBAAqB,CAACgB,GAAG,CAACP,GAAG,CAAC;;IAElE;IACA,IAAIM,2BAA2B,EAAE;MAChCd,oBAAoB,CAACI,OAAO,CAAC;MAC7B;IACD;;IAEA;IACA,IAAIA,OAAO,CAACO,UAAU,CAACE,QAAQ,CAAC,CAAC,CAACG,KAAK,KAAK,CAAC,EAAE;MAC9ChB,oBAAoB,CAACI,OAAO,CAAC;MAC7B;IACD;IAEAM,CAAC,CAACO,cAAc,CAAC,CAAC;IAClB,MAAMC,QAAQ,GAAIC,QAAiB,IAAK;MACvC,IAAIA,QAAQ,EAAE;QACbf,OAAO,CAACO,UAAU,CAACS,QAAQ,CAACV,CAAC,CAACW,IAAI,CAACC,MAAM,CAAC;;QAE1C;QACAC,qBAAqB,CAAC,MAAM;UAC3BvB,oBAAoB,CAACI,OAAO,CAAC;QAC9B,CAAC,CAAC;MACH;IACD,CAAC;IAEDH,aAAa,CAAC;MACbuB,MAAM,EAAE,OAAO;MACfC,IAAI,EAAErB,OAAO,CAACsB,OAAO,CAACC,cAAc;MACpCT,QAAQ;MACRb;IACD,CAAC,CAAC;EACH,CAAC,CAAC;EAEF,MAAMuB,gBAAgB,GAAGhC,iBAAiB,CAAC,MAAM;IAChDK,aAAa,CAAC;MACbuB,MAAM,EAAE,MAAM;MACdC,IAAI,EAAErB,OAAO,CAACsB,OAAO,CAACC,cAAc;MACpCtB;IACD,CAAC,CAAC;EACH,CAAC,CAAC;EAEFZ,SAAS,CAAC,MAAM;IACf,MAAMoC,WAAW,GAAGzB,OAAO,CAACO,UAAU,CAACmB,WAAW,CACjD,cAAc,EACdrB,kBACD,CAAC;IAED,OAAOoB,WAAW;EACnB,CAAC,EAAE,CAACzB,OAAO,CAACO,UAAU,EAAEF,kBAAkB,CAAC,CAAC;EAE5Cf,eAAe,CAACkC,gBAAgB,EAAE,EAAE,CAAC;;EAErC;EACAjC,wBAAwB,CAAC,CAAC;EAE1B,OAAOQ,QAAQ;AAChB,CAAC","ignoreList":[]}
@@ -47,6 +47,7 @@ export function createTransitionAwareComponent(Wrapped, options = {}) {
47
47
  sharedBoundTag,
48
48
  styleId,
49
49
  onPress,
50
+ measureOnLayout,
50
51
  ...rest
51
52
  } = props;
52
53
  const animatedRef = useAnimatedRef();
@@ -56,7 +57,8 @@ export function createTransitionAwareComponent(Wrapped, options = {}) {
56
57
  const {
57
58
  associatedStyles
58
59
  } = useAssociatedStyles({
59
- id: sharedBoundTag || styleId
60
+ id: sharedBoundTag || styleId,
61
+ style
60
62
  });
61
63
  const {
62
64
  measureBounds,
@@ -75,6 +77,14 @@ export function createTransitionAwareComponent(Wrapped, options = {}) {
75
77
  handleLayout: handleLayout
76
78
  });
77
79
  }
80
+ const onLayoutHandler = runOnUI(() => {
81
+ "worklet";
82
+
83
+ handleLayout();
84
+ if (measureOnLayout && sharedBoundTag) {
85
+ measureBounds();
86
+ }
87
+ });
78
88
  return /*#__PURE__*/_jsx(BoundCapture, {
79
89
  sharedBoundTag: sharedBoundTag,
80
90
  measure: measureBounds,
@@ -83,7 +93,7 @@ export function createTransitionAwareComponent(Wrapped, options = {}) {
83
93
  ref: animatedRef,
84
94
  style: [style, associatedStyles],
85
95
  onPress: onPress,
86
- onLayout: runOnUI(handleLayout),
96
+ onLayout: onLayoutHandler,
87
97
  children: children
88
98
  })
89
99
  });
@@ -1 +1 @@
1
- {"version":3,"names":["forwardRef","memo","GestureDetector","Animated","runOnUI","useAnimatedRef","useAssociatedStyles","useBoundsRegistry","useScrollRegistry","useGestureContext","useKeys","BoundCapture","jsx","_jsx","createTransitionAwareComponent","Wrapped","options","isScrollable","AnimatedComponent","createAnimatedComponent","ScrollableInner","props","ref","nativeGesture","scrollHandler","onContentSizeChange","onLayout","onScroll","gesture","children","scrollEventThrottle","Inner","style","sharedBoundTag","styleId","onPress","rest","animatedRef","current","associatedStyles","id","measureBounds","handleLayout","measure"],"sourceRoot":"../../../src","sources":["components/create-transition-aware-component.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["forwardRef","memo","GestureDetector","Animated","runOnUI","useAnimatedRef","useAssociatedStyles","useBoundsRegistry","useScrollRegistry","useGestureContext","useKeys","BoundCapture","jsx","_jsx","createTransitionAwareComponent","Wrapped","options","isScrollable","AnimatedComponent","createAnimatedComponent","ScrollableInner","props","ref","nativeGesture","scrollHandler","onContentSizeChange","onLayout","onScroll","gesture","children","scrollEventThrottle","Inner","style","sharedBoundTag","styleId","onPress","measureOnLayout","rest","animatedRef","current","associatedStyles","id","measureBounds","handleLayout","onLayoutHandler","measure"],"sourceRoot":"../../../src","sources":["components/create-transition-aware-component.tsx"],"mappings":"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","ignoreList":[]}
@@ -9,7 +9,9 @@ const EMPTY_STYLE = Object.freeze({});
9
9
  export const RootTransitionAware = /*#__PURE__*/memo(({
10
10
  children
11
11
  }) => {
12
- const stylesMap = useTransitionStyles();
12
+ const {
13
+ stylesMap
14
+ } = useTransitionStyles();
13
15
  const animatedContentStyle = useAnimatedStyle(() => {
14
16
  "worklet";
15
17
 
@@ -1 +1 @@
1
- {"version":3,"names":["memo","StyleSheet","View","Animated","useAnimatedStyle","useTransitionStyles","jsx","_jsx","jsxs","_jsxs","EMPTY_STYLE","Object","freeze","RootTransitionAware","children","stylesMap","animatedContentStyle","value","contentStyle","animatedOverlayStyle","overlayStyle","style","styles","container","absoluteFillObject","pointerEvents","content","create","flex"],"sourceRoot":"../../../src","sources":["components/root-transition-aware.tsx"],"mappings":";;AAAA,SAASA,IAAI,QAAQ,OAAO;AAC5B,SAASC,UAAU,EAAEC,IAAI,QAAQ,cAAc;AAC/C,OAAOC,QAAQ,IAEdC,gBAAgB,QACV,yBAAyB;AAChC,SAASC,mBAAmB,QAAQ,gCAAgC;AAAC,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;AAMrE,MAAMC,WAAW,GAAGC,MAAM,CAACC,MAAM,CAAC,CAAC,CAAe,CAAC;AAEnD,OAAO,MAAMC,mBAAmB,gBAAGb,IAAI,CAAC,CAAC;EAAEc;AAAgB,CAAC,KAAK;EAChE,MAAMC,SAAS,GAAGV,mBAAmB,CAAC,CAAC;EAEvC,MAAMW,oBAAoB,GAAGZ,gBAAgB,CAAC,MAAM;IACnD,SAAS;;IACT,OAAOW,SAAS,CAACE,KAAK,CAACC,YAAY,IAAIR,WAAW;EACnD,CAAC,CAAC;EAEF,MAAMS,oBAAoB,GAAGf,gBAAgB,CAAC,MAAM;IACnD,SAAS;;IACT,OAAOW,SAAS,CAACE,KAAK,CAACG,YAAY,IAAIV,WAAW;EACnD,CAAC,CAAC;EAEF,oBACCD,KAAA,CAACP,IAAI;IAACmB,KAAK,EAAEC,MAAM,CAACC,SAAU;IAAAT,QAAA,gBAC7BP,IAAA,CAACJ,QAAQ,CAACD,IAAI;MACbmB,KAAK,EAAE,CAACpB,UAAU,CAACuB,kBAAkB,EAAEL,oBAAoB,CAAE;MAC7DM,aAAa,EAAC;IAAM,CACpB,CAAC,eACFlB,IAAA,CAACJ,QAAQ,CAACD,IAAI;MAACmB,KAAK,EAAE,CAACC,MAAM,CAACI,OAAO,EAAEV,oBAAoB,CAAE;MAAAF,QAAA,EAC3DA;IAAQ,CACK,CAAC;EAAA,CACX,CAAC;AAET,CAAC,CAAC;AAEF,MAAMQ,MAAM,GAAGrB,UAAU,CAAC0B,MAAM,CAAC;EAChCJ,SAAS,EAAE;IACVK,IAAI,EAAE;EACP,CAAC;EACDF,OAAO,EAAE;IACRE,IAAI,EAAE;EACP;AACD,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["memo","StyleSheet","View","Animated","useAnimatedStyle","useTransitionStyles","jsx","_jsx","jsxs","_jsxs","EMPTY_STYLE","Object","freeze","RootTransitionAware","children","stylesMap","animatedContentStyle","value","contentStyle","animatedOverlayStyle","overlayStyle","style","styles","container","absoluteFillObject","pointerEvents","content","create","flex"],"sourceRoot":"../../../src","sources":["components/root-transition-aware.tsx"],"mappings":";;AAAA,SAASA,IAAI,QAAQ,OAAO;AAC5B,SAASC,UAAU,EAAEC,IAAI,QAAQ,cAAc;AAC/C,OAAOC,QAAQ,IAEdC,gBAAgB,QACV,yBAAyB;AAChC,SAASC,mBAAmB,QAAQ,gCAAgC;AAAC,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;AAMrE,MAAMC,WAAW,GAAGC,MAAM,CAACC,MAAM,CAAC,CAAC,CAAe,CAAC;AAEnD,OAAO,MAAMC,mBAAmB,gBAAGb,IAAI,CAAC,CAAC;EAAEc;AAAgB,CAAC,KAAK;EAChE,MAAM;IAAEC;EAAU,CAAC,GAAGV,mBAAmB,CAAC,CAAC;EAE3C,MAAMW,oBAAoB,GAAGZ,gBAAgB,CAAC,MAAM;IACnD,SAAS;;IACT,OAAOW,SAAS,CAACE,KAAK,CAACC,YAAY,IAAIR,WAAW;EACnD,CAAC,CAAC;EAEF,MAAMS,oBAAoB,GAAGf,gBAAgB,CAAC,MAAM;IACnD,SAAS;;IACT,OAAOW,SAAS,CAACE,KAAK,CAACG,YAAY,IAAIV,WAAW;EACnD,CAAC,CAAC;EAEF,oBACCD,KAAA,CAACP,IAAI;IAACmB,KAAK,EAAEC,MAAM,CAACC,SAAU;IAAAT,QAAA,gBAC7BP,IAAA,CAACJ,QAAQ,CAACD,IAAI;MACbmB,KAAK,EAAE,CAACpB,UAAU,CAACuB,kBAAkB,EAAEL,oBAAoB,CAAE;MAC7DM,aAAa,EAAC;IAAM,CACpB,CAAC,eACFlB,IAAA,CAACJ,QAAQ,CAACD,IAAI;MAACmB,KAAK,EAAE,CAACC,MAAM,CAACI,OAAO,EAAEV,oBAAoB,CAAE;MAAAF,QAAA,EAC3DA;IAAQ,CACK,CAAC;EAAA,CACX,CAAC;AAET,CAAC,CAAC;AAEF,MAAMQ,MAAM,GAAGrB,UAAU,CAAC0B,MAAM,CAAC;EAChCJ,SAAS,EAAE;IACVK,IAAI,EAAE;EACP,CAAC;EACDF,OAAO,EAAE;IACRE,IAAI,EAAE;EACP;AACD,CAAC,CAAC","ignoreList":[]}
@@ -1,25 +1,60 @@
1
1
  "use strict";
2
2
 
3
- import { useAnimatedStyle } from "react-native-reanimated";
3
+ import { useAnimatedStyle, useDerivedValue, useSharedValue } from "react-native-reanimated";
4
4
  import { useTransitionStyles } from "../../providers/transition-styles";
5
5
  const EMPTY_STYLE = Object.freeze({});
6
6
 
7
7
  /**
8
- * This hook is used to get the associated styles for a given styleId.
9
- * It is used to get the associated styles for a given styleId.
10
- * It is used to get the associated styles for a given styleId.
8
+ * This hook is used to get the associated styles for a given styleId / boundTag.
11
9
  */
12
10
  export const useAssociatedStyles = ({
13
- id
11
+ id,
12
+ style
14
13
  } = {}) => {
15
- const stylesMap = useTransitionStyles();
14
+ const {
15
+ stylesMap
16
+ } = useTransitionStyles();
17
+ const showAfterFirstFrame = useSharedValue(false);
18
+ useDerivedValue(() => {
19
+ "worklet";
20
+
21
+ if (!id) {
22
+ showAfterFirstFrame.value = true;
23
+ return;
24
+ }
25
+ if (!showAfterFirstFrame.value) {
26
+ requestAnimationFrame(() => {
27
+ showAfterFirstFrame.value = true;
28
+ });
29
+ }
30
+ });
16
31
  const associatedStyles = useAnimatedStyle(() => {
17
32
  "worklet";
18
33
 
19
34
  if (!id || !stylesMap) {
20
35
  return EMPTY_STYLE;
21
36
  }
22
- return stylesMap.value[id] || EMPTY_STYLE;
37
+ const base = stylesMap.value[id] || EMPTY_STYLE;
38
+ let opacity = 1;
39
+ if ("opacity" in base) {
40
+ opacity = base.opacity;
41
+ }
42
+ if (style && "opacity" in style) {
43
+ opacity = style.opacity;
44
+ }
45
+
46
+ // Only force opacity to 0 during the initial frame; once ready,
47
+ // return base unchanged so we never override user-provided opacity.
48
+ if (!showAfterFirstFrame.value) {
49
+ return {
50
+ ...base,
51
+ opacity: 0
52
+ };
53
+ }
54
+ return {
55
+ ...base,
56
+ opacity
57
+ };
23
58
  });
24
59
  return {
25
60
  associatedStyles
@@ -1 +1 @@
1
- {"version":3,"names":["useAnimatedStyle","useTransitionStyles","EMPTY_STYLE","Object","freeze","useAssociatedStyles","id","stylesMap","associatedStyles","value"],"sourceRoot":"../../../../src","sources":["hooks/animation/use-associated-style.tsx"],"mappings":";;AAAA,SAASA,gBAAgB,QAAQ,yBAAyB;AAC1D,SAASC,mBAAmB,QAAQ,mCAAmC;AAMvE,MAAMC,WAAW,GAAGC,MAAM,CAACC,MAAM,CAAC,CAAC,CAAC,CAAC;;AAErC;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMC,mBAAmB,GAAGA,CAAC;EAAEC;AAAU,CAAC,GAAG,CAAC,CAAC,KAAK;EAC1D,MAAMC,SAAS,GAAGN,mBAAmB,CAAC,CAAC;EAEvC,MAAMO,gBAAgB,GAAGR,gBAAgB,CAAC,MAAM;IAC/C,SAAS;;IAET,IAAI,CAACM,EAAE,IAAI,CAACC,SAAS,EAAE;MACtB,OAAOL,WAAW;IACnB;IAEA,OAAOK,SAAS,CAACE,KAAK,CAACH,EAAE,CAAC,IAAIJ,WAAW;EAC1C,CAAC,CAAC;EAEF,OAAO;IAAEM;EAAiB,CAAC;AAC5B,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["useAnimatedStyle","useDerivedValue","useSharedValue","useTransitionStyles","EMPTY_STYLE","Object","freeze","useAssociatedStyles","id","style","stylesMap","showAfterFirstFrame","value","requestAnimationFrame","associatedStyles","base","opacity"],"sourceRoot":"../../../../src","sources":["hooks/animation/use-associated-style.tsx"],"mappings":";;AAAA,SAECA,gBAAgB,EAChBC,eAAe,EACfC,cAAc,QACR,yBAAyB;AAChC,SAASC,mBAAmB,QAAQ,mCAAmC;AAOvE,MAAMC,WAAW,GAAGC,MAAM,CAACC,MAAM,CAAC,CAAC,CAAC,CAAC;;AAErC;AACA;AACA;AACA,OAAO,MAAMC,mBAAmB,GAAGA,CAAC;EAAEC,EAAE;EAAEC;AAAa,CAAC,GAAG,CAAC,CAAC,KAAK;EACjE,MAAM;IAAEC;EAAU,CAAC,GAAGP,mBAAmB,CAAC,CAAC;EAC3C,MAAMQ,mBAAmB,GAAGT,cAAc,CAAC,KAAK,CAAC;EAEjDD,eAAe,CAAC,MAAM;IACrB,SAAS;;IACT,IAAI,CAACO,EAAE,EAAE;MACRG,mBAAmB,CAACC,KAAK,GAAG,IAAI;MAChC;IACD;IACA,IAAI,CAACD,mBAAmB,CAACC,KAAK,EAAE;MAC/BC,qBAAqB,CAAC,MAAM;QAC3BF,mBAAmB,CAACC,KAAK,GAAG,IAAI;MACjC,CAAC,CAAC;IACH;EACD,CAAC,CAAC;EAEF,MAAME,gBAAgB,GAAGd,gBAAgB,CAAC,MAAM;IAC/C,SAAS;;IAET,IAAI,CAACQ,EAAE,IAAI,CAACE,SAAS,EAAE;MACtB,OAAON,WAAW;IACnB;IACA,MAAMW,IAAI,GACRL,SAAS,CAACE,KAAK,CAACJ,EAAE,CAAC,IAAgCJ,WAAW;IAEhE,IAAIY,OAAO,GAAG,CAAC;IAEf,IAAI,SAAS,IAAID,IAAI,EAAE;MACtBC,OAAO,GAAGD,IAAI,CAACC,OAAiB;IACjC;IACA,IAAIP,KAAK,IAAI,SAAS,IAAIA,KAAK,EAAE;MAChCO,OAAO,GAAGP,KAAK,CAACO,OAAiB;IAClC;;IAEA;IACA;IACA,IAAI,CAACL,mBAAmB,CAACC,KAAK,EAAE;MAC/B,OAAO;QAAE,GAAGG,IAAI;QAAEC,OAAO,EAAE;MAAE,CAAC;IAC/B;IAEA,OAAO;MAAE,GAAGD,IAAI;MAAEC;IAAQ,CAAC;EAC5B,CAAC,CAAC;EAEF,OAAO;IAAEF;EAAiB,CAAC;AAC5B,CAAC","ignoreList":[]}
@@ -6,7 +6,6 @@ import { useKeys } from "../../providers/keys";
6
6
  import { Bounds } from "../../stores/bounds";
7
7
  import { flattenStyle } from "../../utils/bounds/_utils/flatten-styles";
8
8
  import { isBoundsEqual } from "../../utils/bounds/_utils/is-bounds-equal";
9
- import { useScreenAnimation } from "../animation/use-screen-animation";
10
9
  export const useBoundsRegistry = ({
11
10
  sharedBoundTag,
12
11
  animatedRef,
@@ -16,7 +15,6 @@ export const useBoundsRegistry = ({
16
15
  const {
17
16
  previous
18
17
  } = useKeys();
19
- const interpolatorProps = useScreenAnimation();
20
18
  const isMeasured = useSharedValue(false);
21
19
  const measureBounds = useCallback(() => {
22
20
  "worklet";
@@ -30,11 +28,15 @@ export const useBoundsRegistry = ({
30
28
  key,
31
29
  sharedBoundTag
32
30
  })) {
33
- Bounds.setRouteActive(key, sharedBoundTag);
31
+ if (Bounds.getRouteActive(key) === sharedBoundTag) {
32
+ Bounds.setRouteActive(key, sharedBoundTag);
33
+ }
34
34
  return;
35
35
  }
36
36
  Bounds.setBounds(key, sharedBoundTag, measured, flattenStyle(style));
37
- Bounds.setRouteActive(key, sharedBoundTag);
37
+ if (Bounds.getRouteActive(key) === sharedBoundTag) {
38
+ Bounds.setRouteActive(key, sharedBoundTag);
39
+ }
38
40
  }
39
41
  }, [sharedBoundTag, animatedRef, current.route.key, style]);
40
42
  const handleLayout = useCallback(() => {
@@ -46,23 +48,14 @@ export const useBoundsRegistry = ({
46
48
  }
47
49
  const previousBounds = Bounds.getBounds(previousRouteKey);
48
50
  const hasPreviousBoundForTag = previousBounds[sharedBoundTag];
49
- if (interpolatorProps.value.current.animating && hasPreviousBoundForTag) {
51
+ if (hasPreviousBoundForTag) {
50
52
  measureBounds();
51
53
  isMeasured.value = true;
52
54
  }
53
- }, [measureBounds, interpolatorProps, sharedBoundTag, previous?.route.key, isMeasured]);
54
- const measureOnTouchStart = useCallback(() => {
55
- "worklet";
56
-
57
- if (sharedBoundTag) {
58
- Bounds.setActiveBoundId(sharedBoundTag);
59
- measure(animatedRef);
60
- }
61
- }, [sharedBoundTag, animatedRef]);
55
+ }, [measureBounds, sharedBoundTag, previous?.route.key, isMeasured]);
62
56
  return {
63
57
  measureBounds,
64
- handleLayout,
65
- measureOnTouchStart
58
+ handleLayout
66
59
  };
67
60
  };
68
61
  //# sourceMappingURL=use-bound-registry.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["useCallback","measure","useSharedValue","useKeys","Bounds","flattenStyle","isBoundsEqual","useScreenAnimation","useBoundsRegistry","sharedBoundTag","animatedRef","current","style","previous","interpolatorProps","isMeasured","measureBounds","measured","key","route","setRouteActive","setBounds","handleLayout","previousRouteKey","value","previousBounds","getBounds","hasPreviousBoundForTag","animating","measureOnTouchStart","setActiveBoundId"],"sourceRoot":"../../../../src","sources":["hooks/bounds/use-bound-registry.tsx"],"mappings":";;AAAA,SAASA,WAAW,QAAQ,OAAO;AAEnC,SAECC,OAAO,EAEPC,cAAc,QACR,yBAAyB;AAChC,SAASC,OAAO,QAAQ,sBAAsB;AAC9C,SAASC,MAAM,QAAQ,qBAAqB;AAC5C,SAASC,YAAY,QAAQ,0CAA0C;AACvE,SAASC,aAAa,QAAQ,2CAA2C;AACzE,SAASC,kBAAkB,QAAQ,mCAAmC;AAStE,OAAO,MAAMC,iBAAiB,GAAGA,CAAC;EACjCC,cAAc;EACdC,WAAW;EACXC,OAAO;EACPC;AACuB,CAAC,KAAK;EAC7B,MAAM;IAAEC;EAAS,CAAC,GAAGV,OAAO,CAAC,CAAC;EAC9B,MAAMW,iBAAiB,GAAGP,kBAAkB,CAAC,CAAC;EAC9C,MAAMQ,UAAU,GAAGb,cAAc,CAAC,KAAK,CAAC;EAExC,MAAMc,aAAa,GAAGhB,WAAW,CAAC,MAAM;IACvC,SAAS;;IACT,IAAI,CAACS,cAAc,EAAE;IACrB,MAAMQ,QAAQ,GAAGhB,OAAO,CAACS,WAAW,CAAC;IACrC,IAAIO,QAAQ,EAAE;MACb,MAAMC,GAAG,GAAGP,OAAO,CAACQ,KAAK,CAACD,GAAG;MAC7B,IAAIZ,aAAa,CAAC;QAAEW,QAAQ;QAAEC,GAAG;QAAET;MAAe,CAAC,CAAC,EAAE;QACrDL,MAAM,CAACgB,cAAc,CAACF,GAAG,EAAET,cAAc,CAAC;QAC1C;MACD;MAEAL,MAAM,CAACiB,SAAS,CAACH,GAAG,EAAET,cAAc,EAAEQ,QAAQ,EAAEZ,YAAY,CAACO,KAAK,CAAC,CAAC;MACpER,MAAM,CAACgB,cAAc,CAACF,GAAG,EAAET,cAAc,CAAC;IAC3C;EACD,CAAC,EAAE,CAACA,cAAc,EAAEC,WAAW,EAAEC,OAAO,CAACQ,KAAK,CAACD,GAAG,EAAEN,KAAK,CAAC,CAAC;EAE3D,MAAMU,YAAY,GAAGtB,WAAW,CAAC,MAAM;IACtC,SAAS;;IACT,MAAMuB,gBAAgB,GAAGV,QAAQ,EAAEM,KAAK,CAACD,GAAG;IAC5C,IAAI,CAACT,cAAc,IAAIM,UAAU,CAACS,KAAK,IAAI,CAACD,gBAAgB,EAAE;MAC7D;IACD;IAEA,MAAME,cAAc,GAAGrB,MAAM,CAACsB,SAAS,CAACH,gBAAgB,CAAC;IACzD,MAAMI,sBAAsB,GAAGF,cAAc,CAAChB,cAAc,CAAC;IAE7D,IAAIK,iBAAiB,CAACU,KAAK,CAACb,OAAO,CAACiB,SAAS,IAAID,sBAAsB,EAAE;MACxEX,aAAa,CAAC,CAAC;MACfD,UAAU,CAACS,KAAK,GAAG,IAAI;IACxB;EACD,CAAC,EAAE,CACFR,aAAa,EACbF,iBAAiB,EACjBL,cAAc,EACdI,QAAQ,EAAEM,KAAK,CAACD,GAAG,EACnBH,UAAU,CACV,CAAC;EAEF,MAAMc,mBAAmB,GAAG7B,WAAW,CAAC,MAAM;IAC7C,SAAS;;IACT,IAAIS,cAAc,EAAE;MACnBL,MAAM,CAAC0B,gBAAgB,CAACrB,cAAc,CAAC;MACvCR,OAAO,CAACS,WAAW,CAAC;IACrB;EACD,CAAC,EAAE,CAACD,cAAc,EAAEC,WAAW,CAAC,CAAC;EAEjC,OAAO;IACNM,aAAa;IACbM,YAAY;IACZO;EACD,CAAC;AACF,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["useCallback","measure","useSharedValue","useKeys","Bounds","flattenStyle","isBoundsEqual","useBoundsRegistry","sharedBoundTag","animatedRef","current","style","previous","isMeasured","measureBounds","measured","key","route","getRouteActive","setRouteActive","setBounds","handleLayout","previousRouteKey","value","previousBounds","getBounds","hasPreviousBoundForTag"],"sourceRoot":"../../../../src","sources":["hooks/bounds/use-bound-registry.tsx"],"mappings":";;AAAA,SAASA,WAAW,QAAQ,OAAO;AAEnC,SAECC,OAAO,EAEPC,cAAc,QACR,yBAAyB;AAChC,SAASC,OAAO,QAAQ,sBAAsB;AAC9C,SAASC,MAAM,QAAQ,qBAAqB;AAC5C,SAASC,YAAY,QAAQ,0CAA0C;AACvE,SAASC,aAAa,QAAQ,2CAA2C;AASzE,OAAO,MAAMC,iBAAiB,GAAGA,CAAC;EACjCC,cAAc;EACdC,WAAW;EACXC,OAAO;EACPC;AACuB,CAAC,KAAK;EAC7B,MAAM;IAAEC;EAAS,CAAC,GAAGT,OAAO,CAAC,CAAC;EAE9B,MAAMU,UAAU,GAAGX,cAAc,CAAC,KAAK,CAAC;EAExC,MAAMY,aAAa,GAAGd,WAAW,CAAC,MAAM;IACvC,SAAS;;IACT,IAAI,CAACQ,cAAc,EAAE;IACrB,MAAMO,QAAQ,GAAGd,OAAO,CAACQ,WAAW,CAAC;IACrC,IAAIM,QAAQ,EAAE;MACb,MAAMC,GAAG,GAAGN,OAAO,CAACO,KAAK,CAACD,GAAG;MAC7B,IAAIV,aAAa,CAAC;QAAES,QAAQ;QAAEC,GAAG;QAAER;MAAe,CAAC,CAAC,EAAE;QACrD,IAAIJ,MAAM,CAACc,cAAc,CAACF,GAAG,CAAC,KAAKR,cAAc,EAAE;UAClDJ,MAAM,CAACe,cAAc,CAACH,GAAG,EAAER,cAAc,CAAC;QAC3C;QACA;MACD;MAEAJ,MAAM,CAACgB,SAAS,CAACJ,GAAG,EAAER,cAAc,EAAEO,QAAQ,EAAEV,YAAY,CAACM,KAAK,CAAC,CAAC;MACpE,IAAIP,MAAM,CAACc,cAAc,CAACF,GAAG,CAAC,KAAKR,cAAc,EAAE;QAClDJ,MAAM,CAACe,cAAc,CAACH,GAAG,EAAER,cAAc,CAAC;MAC3C;IACD;EACD,CAAC,EAAE,CAACA,cAAc,EAAEC,WAAW,EAAEC,OAAO,CAACO,KAAK,CAACD,GAAG,EAAEL,KAAK,CAAC,CAAC;EAE3D,MAAMU,YAAY,GAAGrB,WAAW,CAAC,MAAM;IACtC,SAAS;;IACT,MAAMsB,gBAAgB,GAAGV,QAAQ,EAAEK,KAAK,CAACD,GAAG;IAE5C,IAAI,CAACR,cAAc,IAAIK,UAAU,CAACU,KAAK,IAAI,CAACD,gBAAgB,EAAE;MAC7D;IACD;IAEA,MAAME,cAAc,GAAGpB,MAAM,CAACqB,SAAS,CAACH,gBAAgB,CAAC;IACzD,MAAMI,sBAAsB,GAAGF,cAAc,CAAChB,cAAc,CAAC;IAE7D,IAAIkB,sBAAsB,EAAE;MAC3BZ,aAAa,CAAC,CAAC;MACfD,UAAU,CAACU,KAAK,GAAG,IAAI;IACxB;EACD,CAAC,EAAE,CAACT,aAAa,EAAEN,cAAc,EAAEI,QAAQ,EAAEK,KAAK,CAACD,GAAG,EAAEH,UAAU,CAAC,CAAC;EAEpE,OAAO;IACNC,aAAa;IACbO;EACD,CAAC;AACF,CAAC","ignoreList":[]}
@@ -23,7 +23,11 @@ export function TransitionStylesProvider({
23
23
  }
24
24
  return screenStyleInterpolator ? screenStyleInterpolator(screenInterpolatorProps.value) : EMPTY_MAP;
25
25
  });
26
- const value = useMemo(() => stylesMap, [stylesMap]);
26
+ const value = useMemo(() => {
27
+ return {
28
+ stylesMap
29
+ };
30
+ }, [stylesMap]);
27
31
  return /*#__PURE__*/_jsx(TransitionStylesContext.Provider, {
28
32
  value: value,
29
33
  children: children
@@ -1 +1 @@
1
- {"version":3,"names":["createContext","useContext","useMemo","isWorkletFunction","useDerivedValue","_useScreenAnimation","jsx","_jsx","EMPTY_MAP","Object","freeze","TransitionStylesContext","TransitionStylesProvider","children","screenInterpolatorProps","screenStyleInterpolator","isFunctionWorklet","stylesMap","__DEV__","console","warn","value","Provider","useTransitionStyles","ctx","Error"],"sourceRoot":"../../../src","sources":["providers/transition-styles.tsx"],"mappings":";;AAAA,SAASA,aAAa,EAAEC,UAAU,EAAEC,OAAO,QAAQ,OAAO;AAC1D,SAASC,iBAAiB,EAAEC,eAAe,QAAQ,yBAAyB;AAC5E,SAASC,mBAAmB,QAAQ,yCAAyC;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAO9E,MAAMC,SAAS,GAAGC,MAAM,CAACC,MAAM,CAAC,CAAC,CAAC,CAAC;AAEnC,MAAMC,uBAAuB,gBAAGX,aAAa,CAEnC,IAAI,CAAC;AAEf,OAAO,SAASY,wBAAwBA,CAAC;EAAEC;AAAgB,CAAC,EAAE;EAC7D,MAAM;IAAEC,uBAAuB;IAAEC;EAAwB,CAAC,GACzDV,mBAAmB,CAAC,CAAC;EAEtB,MAAMW,iBAAiB,GAAGb,iBAAiB,CAACY,uBAAuB,CAAC;EAEpE,MAAME,SAAS,GAAGb,eAAe,CAA8B,MAAM;IACpE,SAAS;;IAET,IAAIW,uBAAuB,IAAI,CAACC,iBAAiB,IAAIE,OAAO,EAAE;MAC7DC,OAAO,CAACC,IAAI,CAAC,mDAAmD,CAAC;MACjE,OAAOZ,SAAS;IACjB;IAEA,OAAOO,uBAAuB,GAC3BA,uBAAuB,CAACD,uBAAuB,CAACO,KAAK,CAAC,GACtDb,SAAS;EACb,CAAC,CAAC;EAEF,MAAMa,KAAK,GAAGnB,OAAO,CAAC,MAAMe,SAAS,EAAE,CAACA,SAAS,CAAC,CAAC;EAEnD,oBACCV,IAAA,CAACI,uBAAuB,CAACW,QAAQ;IAACD,KAAK,EAAEA,KAAM;IAAAR,QAAA,EAC7CA;EAAQ,CACwB,CAAC;AAErC;AAEA,OAAO,SAASU,mBAAmBA,CAAA,EAAG;EACrC,MAAMC,GAAG,GAAGvB,UAAU,CAACU,uBAAuB,CAAC;EAC/C,IAAI,CAACa,GAAG,EAAE;IACT,MAAM,IAAIC,KAAK,CACd,oEACD,CAAC;EACF;EACA,OAAOD,GAAG;AACX","ignoreList":[]}
1
+ {"version":3,"names":["createContext","useContext","useMemo","isWorkletFunction","useDerivedValue","_useScreenAnimation","jsx","_jsx","EMPTY_MAP","Object","freeze","TransitionStylesContext","TransitionStylesProvider","children","screenInterpolatorProps","screenStyleInterpolator","isFunctionWorklet","stylesMap","__DEV__","console","warn","value","Provider","useTransitionStyles","ctx","Error"],"sourceRoot":"../../../src","sources":["providers/transition-styles.tsx"],"mappings":";;AAAA,SAASA,aAAa,EAAEC,UAAU,EAAEC,OAAO,QAAQ,OAAO;AAC1D,SAASC,iBAAiB,EAAEC,eAAe,QAAQ,yBAAyB;AAC5E,SAASC,mBAAmB,QAAQ,yCAAyC;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAO9E,MAAMC,SAAS,GAAGC,MAAM,CAACC,MAAM,CAAC,CAAC,CAAC,CAAC;AAEnC,MAAMC,uBAAuB,gBAAGX,aAAa,CAInC,IAAI,CAAC;AAEf,OAAO,SAASY,wBAAwBA,CAAC;EAAEC;AAAgB,CAAC,EAAE;EAC7D,MAAM;IAAEC,uBAAuB;IAAEC;EAAwB,CAAC,GACzDV,mBAAmB,CAAC,CAAC;EAEtB,MAAMW,iBAAiB,GAAGb,iBAAiB,CAACY,uBAAuB,CAAC;EAEpE,MAAME,SAAS,GAAGb,eAAe,CAA8B,MAAM;IACpE,SAAS;;IAET,IAAIW,uBAAuB,IAAI,CAACC,iBAAiB,IAAIE,OAAO,EAAE;MAC7DC,OAAO,CAACC,IAAI,CAAC,mDAAmD,CAAC;MACjE,OAAOZ,SAAS;IACjB;IAEA,OAAOO,uBAAuB,GAC3BA,uBAAuB,CAACD,uBAAuB,CAACO,KAAK,CAAC,GACtDb,SAAS;EACb,CAAC,CAAC;EAEF,MAAMa,KAAK,GAAGnB,OAAO,CAAC,MAAM;IAC3B,OAAO;MACNe;IACD,CAAC;EACF,CAAC,EAAE,CAACA,SAAS,CAAC,CAAC;EAEf,oBACCV,IAAA,CAACI,uBAAuB,CAACW,QAAQ;IAACD,KAAK,EAAEA,KAAM;IAAAR,QAAA,EAC7CA;EAAQ,CACwB,CAAC;AAErC;AAEA,OAAO,SAASU,mBAAmBA,CAAA,EAAG;EACrC,MAAMC,GAAG,GAAGvB,UAAU,CAACU,uBAAuB,CAAC;EAC/C,IAAI,CAACa,GAAG,EAAE;IACT,MAAM,IAAIC,KAAK,CACd,oEACD,CAAC;EACF;EACA,OAAOD,GAAG;AACX","ignoreList":[]}
@@ -0,0 +1,113 @@
1
+ "use strict";
2
+
3
+ export function pairKey(fromKey, toKey) {
4
+ "worklet";
5
+
6
+ return fromKey && toKey ? `${fromKey}|${toKey}` : "";
7
+ }
8
+ const hasBound = (s, id) => {
9
+ "worklet";
10
+
11
+ return !!id && !!s && !!s.bounds && !!s.bounds[id];
12
+ };
13
+ const getRoutePair = (current, next, previous) => {
14
+ "worklet";
15
+
16
+ const isClosing = !!next;
17
+ const fromKey = isClosing ? current.route.key : previous?.route.key;
18
+ const toKey = isClosing ? next?.route.key : current.route.key;
19
+ const other = next ?? previous;
20
+ return {
21
+ fromKey,
22
+ toKey,
23
+ other
24
+ };
25
+ };
26
+ const resolveFromPairCache = (fromKey, toKey, other, getPairCache) => {
27
+ "worklet";
28
+
29
+ if (fromKey && toKey) {
30
+ const cached = getPairCache(fromKey, toKey);
31
+ if (hasBound(other, cached)) return cached;
32
+ }
33
+ return "";
34
+ };
35
+ const resolveFromRequested = (reqId, current, other) => {
36
+ "worklet";
37
+
38
+ if (hasBound(other, reqId)) return reqId;
39
+ if (hasBound(current, reqId)) return reqId;
40
+ return "";
41
+ };
42
+ const resolveFromInteresection = (current, other, fromKey, getRouteActive) => {
43
+ "worklet";
44
+
45
+ if (!other) return "";
46
+ const a = Object.keys(current.bounds);
47
+ const b = Object.keys(other.bounds);
48
+ const inter = a.filter(k => b.includes(k));
49
+ const otherHasAny = b.length > 0;
50
+ const routeActive = fromKey ? getRouteActive(fromKey) : null;
51
+ if (inter.length > 0) {
52
+ if (routeActive && inter.includes(routeActive)) return routeActive;
53
+ return inter[0];
54
+ }
55
+ if (routeActive && hasBound(other, routeActive)) return routeActive;
56
+ if (b.length === 1) return b[0];
57
+ if (!otherHasAny) {
58
+ if (routeActive && hasBound(current, routeActive)) return routeActive;
59
+ if (a.length === 1) return a[0];
60
+ }
61
+ return "";
62
+ };
63
+
64
+ /**
65
+ * Util function to get the active bound id for a given transition state.
66
+ *
67
+ * It will check by ( priority from highest to lowest ):
68
+ * 1. Requested id
69
+ * 2. Cache
70
+ * 3. Intersection
71
+ */
72
+ export function resolveActiveBound({
73
+ current,
74
+ next,
75
+ previous,
76
+ getPairCache,
77
+ setPairCache,
78
+ getRouteActive
79
+ }) {
80
+ "worklet";
81
+
82
+ const {
83
+ fromKey,
84
+ toKey,
85
+ other
86
+ } = getRoutePair(current, next, previous);
87
+
88
+ // Resolve requested from per-route most recently used (last active bound by route)
89
+ const requestedId = fromKey ? getRouteActive(fromKey) : null;
90
+ const byRequested = resolveFromRequested(requestedId, current, other);
91
+ if (byRequested) {
92
+ if (fromKey && toKey && hasBound(current, byRequested) && hasBound(other, byRequested)) {
93
+ setPairCache(fromKey, toKey, byRequested);
94
+ }
95
+ return byRequested;
96
+ }
97
+ const byPairCache = resolveFromPairCache(fromKey, toKey, other, getPairCache);
98
+ if (byPairCache) {
99
+ if (fromKey && toKey && hasBound(current, byPairCache) && hasBound(other, byPairCache)) {
100
+ setPairCache(fromKey, toKey, byPairCache);
101
+ }
102
+ return byPairCache;
103
+ }
104
+ const byIntersection = resolveFromInteresection(current, other, fromKey, getRouteActive);
105
+ if (byIntersection) {
106
+ if (fromKey && toKey && hasBound(current, byIntersection) && hasBound(other, byIntersection)) {
107
+ setPairCache(fromKey, toKey, byIntersection);
108
+ }
109
+ return byIntersection;
110
+ }
111
+ return "";
112
+ }
113
+ //# sourceMappingURL=_utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["pairKey","fromKey","toKey","hasBound","s","id","bounds","getRoutePair","current","next","previous","isClosing","route","key","other","resolveFromPairCache","getPairCache","cached","resolveFromRequested","reqId","resolveFromInteresection","getRouteActive","a","Object","keys","b","inter","filter","k","includes","otherHasAny","length","routeActive","resolveActiveBound","setPairCache","requestedId","byRequested","byPairCache","byIntersection"],"sourceRoot":"../../../../src","sources":["stores/bounds/_utils.ts"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,112 @@
1
+ "use strict";
2
+
3
+ import { makeMutable } from "react-native-reanimated";
4
+ import { pairKey, resolveActiveBound } from "./_utils";
5
+ const registry = makeMutable({});
6
+ const pairCache = makeMutable({});
7
+ const lastActiveByRoute = makeMutable({});
8
+ function setBounds(screenId, boundId, bounds = null, styles = {}) {
9
+ "worklet";
10
+
11
+ registry.modify(state => {
12
+ "worklet";
13
+
14
+ if (!state[screenId]) {
15
+ state[screenId] = {};
16
+ }
17
+ state[screenId][boundId] = {
18
+ bounds,
19
+ styles
20
+ };
21
+ return state;
22
+ });
23
+ }
24
+ function getBounds(screenId) {
25
+ "worklet";
26
+
27
+ return registry.value[screenId] ?? {};
28
+ }
29
+ function setRouteActive(routeKey, boundId) {
30
+ "worklet";
31
+
32
+ lastActiveByRoute.modify(state => {
33
+ "worklet";
34
+
35
+ state[routeKey] = boundId;
36
+ return state;
37
+ });
38
+ }
39
+ function getRouteActive(routeKey) {
40
+ "worklet";
41
+
42
+ return lastActiveByRoute.value[routeKey] ?? null;
43
+ }
44
+ function setPairCache(fromKey, toKey, boundId) {
45
+ "worklet";
46
+
47
+ const key = pairKey(fromKey, toKey);
48
+ if (!key) return;
49
+ pairCache.modify(state => {
50
+ "worklet";
51
+
52
+ state[key] = boundId;
53
+ return state;
54
+ });
55
+ }
56
+ function getPairCache(fromKey, toKey) {
57
+ "worklet";
58
+
59
+ const key = pairKey(fromKey, toKey);
60
+ if (!key) return null;
61
+ return pairCache.value[key] ?? null;
62
+ }
63
+ function clear(routeKey) {
64
+ "worklet";
65
+
66
+ registry.modify(state => {
67
+ "worklet";
68
+
69
+ delete state[routeKey];
70
+ return state;
71
+ });
72
+ lastActiveByRoute.modify(state => {
73
+ "worklet";
74
+
75
+ if (state[routeKey]) delete state[routeKey];
76
+ return state;
77
+ });
78
+ pairCache.modify(state => {
79
+ "worklet";
80
+
81
+ const keys = Object.keys(state);
82
+ for (let i = 0; i < keys.length; i++) {
83
+ const k = keys[i];
84
+ const [from, to] = k.split("|");
85
+ if (from === routeKey || to === routeKey) {
86
+ delete state[k];
87
+ }
88
+ }
89
+ return state;
90
+ });
91
+ }
92
+ function getActiveBound(current, next, previous) {
93
+ "worklet";
94
+
95
+ return resolveActiveBound({
96
+ current,
97
+ next,
98
+ previous,
99
+ getPairCache,
100
+ setPairCache,
101
+ getRouteActive
102
+ });
103
+ }
104
+ export const Bounds = {
105
+ setBounds,
106
+ getBounds,
107
+ setRouteActive,
108
+ getRouteActive,
109
+ clear,
110
+ getActiveBound
111
+ };
112
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["makeMutable","pairKey","resolveActiveBound","registry","pairCache","lastActiveByRoute","setBounds","screenId","boundId","bounds","styles","modify","state","getBounds","value","setRouteActive","routeKey","getRouteActive","setPairCache","fromKey","toKey","key","getPairCache","clear","keys","Object","i","length","k","from","to","split","getActiveBound","current","next","previous","Bounds"],"sourceRoot":"../../../../src","sources":["stores/bounds/index.ts"],"mappings":"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","ignoreList":[]}
@@ -7,12 +7,9 @@ import { Gestures } from "../gestures";
7
7
  /**
8
8
  * Reset all stores for a given screen
9
9
  */
10
- export const resetStoresForScreen = (current, options = {}) => {
10
+ export const resetStoresForScreen = current => {
11
11
  Animations.clear(current.route.key);
12
12
  Gestures.clear(current.route.key);
13
13
  Bounds.clear(current.route.key);
14
- if (options.clearActive) {
15
- Bounds.clearActive();
16
- }
17
14
  };
18
15
  //# sourceMappingURL=reset-stores-for-screen.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["Animations","Bounds","Gestures","resetStoresForScreen","current","options","clear","route","key","clearActive"],"sourceRoot":"../../../../src","sources":["stores/utils/reset-stores-for-screen.ts"],"mappings":";;AACA,SAASA,UAAU,QAAQ,eAAe;AAC1C,SAASC,MAAM,QAAQ,WAAW;AAClC,SAASC,QAAQ,QAAQ,aAAa;;AAEtC;AACA;AACA;AACA,OAAO,MAAMC,oBAAoB,GAAGA,CACnCC,OAA8B,EAC9BC,OAAkC,GAAG,CAAC,CAAC,KACnC;EACJL,UAAU,CAACM,KAAK,CAACF,OAAO,CAACG,KAAK,CAACC,GAAG,CAAC;EACnCN,QAAQ,CAACI,KAAK,CAACF,OAAO,CAACG,KAAK,CAACC,GAAG,CAAC;EACjCP,MAAM,CAACK,KAAK,CAACF,OAAO,CAACG,KAAK,CAACC,GAAG,CAAC;EAC/B,IAAIH,OAAO,CAACI,WAAW,EAAE;IACxBR,MAAM,CAACQ,WAAW,CAAC,CAAC;EACrB;AACD,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["Animations","Bounds","Gestures","resetStoresForScreen","current","clear","route","key"],"sourceRoot":"../../../../src","sources":["stores/utils/reset-stores-for-screen.ts"],"mappings":";;AACA,SAASA,UAAU,QAAQ,eAAe;AAC1C,SAASC,MAAM,QAAQ,WAAW;AAClC,SAASC,QAAQ,QAAQ,aAAa;;AAEtC;AACA;AACA;AACA,OAAO,MAAMC,oBAAoB,GAAIC,OAA8B,IAAK;EACvEJ,UAAU,CAACK,KAAK,CAACD,OAAO,CAACE,KAAK,CAACC,GAAG,CAAC;EACnCL,QAAQ,CAACG,KAAK,CAACD,OAAO,CAACE,KAAK,CAACC,GAAG,CAAC;EACjCN,MAAM,CAACI,KAAK,CAACD,OAAO,CAACE,KAAK,CAACC,GAAG,CAAC;AAChC,CAAC","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"bound-capture.d.ts","sourceRoot":"","sources":["../../../src/components/bound-capture.tsx"],"names":[],"mappings":"AAIA,UAAU,mBAAmB;IAC5B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,OAAO,EAAE,MAAM,IAAI,CAAC;CACpB;AAED,eAAO,MAAM,YAAY,GAAI,wCAI1B,mBAAmB,4WAcrB,CAAC"}
1
+ {"version":3,"file":"bound-capture.d.ts","sourceRoot":"","sources":["../../../src/components/bound-capture.tsx"],"names":[],"mappings":"AAKA,UAAU,mBAAmB;IAC5B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,OAAO,EAAE,MAAM,IAAI,CAAC;CACpB;AAED,eAAO,MAAM,YAAY,GAAI,wCAI1B,mBAAmB,4WAgBrB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"create-transition-aware-component.d.ts","sourceRoot":"","sources":["../../../src/components/create-transition-aware-component.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,KAAK,aAAa,EAAoB,MAAM,OAAO,CAAC;AAS7D,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AAI1D,UAAU,qCAAqC;IAC9C,YAAY,CAAC,EAAE,OAAO,CAAC;CACvB;AAED,wBAAgB,8BAA8B,CAAC,CAAC,SAAS,MAAM,EAC9D,OAAO,EAAE,aAAa,CAAC,CAAC,CAAC,EACzB,OAAO,GAAE,qCAA0C,GA8E7B,KAAK,CAAC,mBAAmB,CAC9C,KAAK,CAAC,yBAAyB,CAC9B,oBAAoB,CAAC,CAAC,CAAC,GACtB,KAAK,CAAC,aAAa,CAAC,KAAK,CAAC,YAAY,CAAC,OAAO,OAAO,CAAC,CAAC,CACxD,CACD,CACD"}
1
+ {"version":3,"file":"create-transition-aware-component.d.ts","sourceRoot":"","sources":["../../../src/components/create-transition-aware-component.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,KAAK,aAAa,EAAoB,MAAM,OAAO,CAAC;AAS7D,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AAI1D,UAAU,qCAAqC;IAC9C,YAAY,CAAC,EAAE,OAAO,CAAC;CACvB;AAED,wBAAgB,8BAA8B,CAAC,CAAC,SAAS,MAAM,EAC9D,OAAO,EAAE,aAAa,CAAC,CAAC,CAAC,EACzB,OAAO,GAAE,qCAA0C,GA8F7B,KAAK,CAAC,mBAAmB,CAC9C,KAAK,CAAC,yBAAyB,CAC9B,oBAAoB,CAAC,CAAC,CAAC,GACtB,KAAK,CAAC,aAAa,CAAC,KAAK,CAAC,YAAY,CAAC,OAAO,OAAO,CAAC,CAAC,CACxD,CACD,CACD"}