@tamagui/animations-reanimated 2.2.0 → 2.3.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.
- package/dist/cjs/createAnimations.cjs +17 -5
- package/dist/cjs/createAnimations.native.js +17 -5
- package/dist/cjs/createAnimations.native.js.map +1 -1
- package/dist/esm/createAnimations.mjs +17 -5
- package/dist/esm/createAnimations.mjs.map +1 -1
- package/dist/esm/createAnimations.native.js +17 -5
- package/dist/esm/createAnimations.native.js.map +1 -1
- package/package.json +5 -5
- package/src/createAnimations.tsx +128 -66
- package/types/createAnimations.d.ts.map +1 -1
|
@@ -490,6 +490,16 @@ function createAnimations(animationsConfig) {
|
|
|
490
490
|
staticStyles: staticStyles2
|
|
491
491
|
};
|
|
492
492
|
}, [disableAnimation, style, isDark, isMounting, props.animateOnly]);
|
|
493
|
+
const pseudoActiveRef = (0, import_react.useRef)(false);
|
|
494
|
+
const isExitingJSRef = (0, import_react.useRef)(false);
|
|
495
|
+
isExitingJSRef.current = isExiting;
|
|
496
|
+
(0, import_core.useIsomorphicLayoutEffect)(() => {
|
|
497
|
+
if ((isExiting || !pseudoActiveRef.current) && animatedTargetsRef.value !== null) {
|
|
498
|
+
animatedTargetsRef.value = null;
|
|
499
|
+
staticTargetsRef.value = null;
|
|
500
|
+
transformTargetsRef.value = null;
|
|
501
|
+
}
|
|
502
|
+
});
|
|
493
503
|
const {
|
|
494
504
|
baseConfig,
|
|
495
505
|
propertyConfigs
|
|
@@ -503,8 +513,8 @@ function createAnimations(animationsConfig) {
|
|
|
503
513
|
propertyConfigs: {}
|
|
504
514
|
};
|
|
505
515
|
}
|
|
506
|
-
return buildTransitionConfig(
|
|
507
|
-
}, [isHydrating,
|
|
516
|
+
return buildTransitionConfig(effectiveTransition, animations, animationState, getStyleKeys(animatedStyles));
|
|
517
|
+
}, [isHydrating, effectiveTransition, animatedStyles, animationState]);
|
|
508
518
|
const configRef = (0, import_react_native_reanimated.useSharedValue)({
|
|
509
519
|
baseConfig,
|
|
510
520
|
propertyConfigs,
|
|
@@ -519,7 +529,9 @@ function createAnimations(animationsConfig) {
|
|
|
519
529
|
isHydrating
|
|
520
530
|
};
|
|
521
531
|
}, [baseConfig, propertyConfigs, disableAnimation, isHydrating]);
|
|
522
|
-
useStyleEmitter?.((nextStyle, effectiveTransition2) => {
|
|
532
|
+
useStyleEmitter?.((nextStyle, effectiveTransition2, pseudoActive) => {
|
|
533
|
+
if (isExitingJSRef.current) return;
|
|
534
|
+
pseudoActiveRef.current = pseudoActive === true;
|
|
523
535
|
const animateOnly = props.animateOnly;
|
|
524
536
|
const animated = {};
|
|
525
537
|
const statics = {};
|
|
@@ -620,7 +632,7 @@ function createAnimations(animationsConfig) {
|
|
|
620
632
|
const emitterTransforms = transformTargetsRef.value;
|
|
621
633
|
const hasEmitterUpdates = emitterAnimated !== null;
|
|
622
634
|
const animatedValues = hasEmitterUpdates ? emitterAnimated : animatedStyles;
|
|
623
|
-
const staticValues = hasEmitterUpdates ? emitterStatic :
|
|
635
|
+
const staticValues = hasEmitterUpdates ? emitterStatic : staticStyles;
|
|
624
636
|
const currentlyExiting = isExitingRef.value;
|
|
625
637
|
const currentCycleId = exitCycleIdShared.value;
|
|
626
638
|
for (const key in staticValues) {
|
|
@@ -674,7 +686,7 @@ function createAnimations(animationsConfig) {
|
|
|
674
686
|
}
|
|
675
687
|
}
|
|
676
688
|
return result;
|
|
677
|
-
}, import_core.isWeb ? [animatedStyles, baseConfig, propertyConfigs, disableAnimation, isHydrating,
|
|
689
|
+
}, import_core.isWeb ? [animatedStyles, staticStyles, baseConfig, propertyConfigs, disableAnimation, isHydrating,
|
|
678
690
|
// pass SharedValues so the mapper watches them on web (no babel plugin)
|
|
679
691
|
animatedTargetsRef, staticTargetsRef, transformTargetsRef, isExitingRef, exitCycleIdShared, markExitKeyDone] : void 0);
|
|
680
692
|
silenceAnimatedComponentDevCheck(animatedStyle);
|
|
@@ -553,6 +553,16 @@ function createAnimations(animationsConfig) {
|
|
|
553
553
|
staticStyles: staticStyles2
|
|
554
554
|
};
|
|
555
555
|
}, [disableAnimation, style, isDark, isMounting, props.animateOnly]);
|
|
556
|
+
var pseudoActiveRef = (0, import_react.useRef)(false);
|
|
557
|
+
var isExitingJSRef = (0, import_react.useRef)(false);
|
|
558
|
+
isExitingJSRef.current = isExiting;
|
|
559
|
+
(0, import_core.useIsomorphicLayoutEffect)(function () {
|
|
560
|
+
if ((isExiting || !pseudoActiveRef.current) && animatedTargetsRef.value !== null) {
|
|
561
|
+
animatedTargetsRef.value = null;
|
|
562
|
+
staticTargetsRef.value = null;
|
|
563
|
+
transformTargetsRef.value = null;
|
|
564
|
+
}
|
|
565
|
+
});
|
|
556
566
|
var {
|
|
557
567
|
baseConfig,
|
|
558
568
|
propertyConfigs
|
|
@@ -566,8 +576,8 @@ function createAnimations(animationsConfig) {
|
|
|
566
576
|
propertyConfigs: {}
|
|
567
577
|
};
|
|
568
578
|
}
|
|
569
|
-
return buildTransitionConfig(
|
|
570
|
-
}, [isHydrating,
|
|
579
|
+
return buildTransitionConfig(effectiveTransition, animations, animationState, getStyleKeys(animatedStyles));
|
|
580
|
+
}, [isHydrating, effectiveTransition, animatedStyles, animationState]);
|
|
571
581
|
var configRef = (0, import_react_native_reanimated.useSharedValue)({
|
|
572
582
|
baseConfig,
|
|
573
583
|
propertyConfigs,
|
|
@@ -582,7 +592,9 @@ function createAnimations(animationsConfig) {
|
|
|
582
592
|
isHydrating
|
|
583
593
|
};
|
|
584
594
|
}, [baseConfig, propertyConfigs, disableAnimation, isHydrating]);
|
|
585
|
-
useStyleEmitter === null || useStyleEmitter === void 0 ? void 0 : useStyleEmitter(function (nextStyle, effectiveTransition2) {
|
|
595
|
+
useStyleEmitter === null || useStyleEmitter === void 0 ? void 0 : useStyleEmitter(function (nextStyle, effectiveTransition2, pseudoActive) {
|
|
596
|
+
if (isExitingJSRef.current) return;
|
|
597
|
+
pseudoActiveRef.current = pseudoActive === true;
|
|
586
598
|
var animateOnly2 = props.animateOnly;
|
|
587
599
|
var animated = {};
|
|
588
600
|
var statics = {};
|
|
@@ -738,7 +750,7 @@ function createAnimations(animationsConfig) {
|
|
|
738
750
|
var emitterTransforms = transformTargetsRef.value;
|
|
739
751
|
var hasEmitterUpdates = emitterAnimated !== null;
|
|
740
752
|
var animatedValues = hasEmitterUpdates ? emitterAnimated : animatedStyles;
|
|
741
|
-
var staticValues = hasEmitterUpdates ? emitterStatic :
|
|
753
|
+
var staticValues = hasEmitterUpdates ? emitterStatic : staticStyles;
|
|
742
754
|
var currentlyExiting = isExitingRef.value;
|
|
743
755
|
var currentCycleId = exitCycleIdShared.value;
|
|
744
756
|
for (var key3 in staticValues) {
|
|
@@ -798,7 +810,7 @@ function createAnimations(animationsConfig) {
|
|
|
798
810
|
}
|
|
799
811
|
}
|
|
800
812
|
return result;
|
|
801
|
-
}, import_core.isWeb ? [animatedStyles, baseConfig, propertyConfigs, disableAnimation, isHydrating,
|
|
813
|
+
}, import_core.isWeb ? [animatedStyles, staticStyles, baseConfig, propertyConfigs, disableAnimation, isHydrating,
|
|
802
814
|
// pass SharedValues so the mapper watches them on web (no babel plugin)
|
|
803
815
|
animatedTargetsRef, staticTargetsRef, transformTargetsRef, isExitingRef, exitCycleIdShared, markExitKeyDone] : void 0);
|
|
804
816
|
silenceAnimatedComponentDevCheck(animatedStyle);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["__toCommonJS","mod","__copyProps","__defProp","value","createAnimations_exports","__export","createAnimations","module","exports","import_jsx_runtime","require","import_animation_helpers","import_core","import_use_presence","import_react","__toESM","import_react_native_reanimated","_type_of","obj","Symbol","constructor","getDefaultExport","module2","__esModule","toStringTag","default","Animated","silenceAnimatedComponentDevCheck","style","process","env","NODE_ENV","isWeb","Object","defineProperty","configurable","enumerable","resolveDynamicValue","isDark","dynamic","dark","light","cloneAnimationValue","Array","isArray","map","next","key","cloneTransitionConfig","config","createReanimatedConfig","source","applyAnimation","targetValue","callback","delay","reanimatedConfig","animatedValue","type","withTiming","withSpring","withDelay","ANIMATABLE_PROPERTIES","transform","opacity","height","width","minWidth","minHeight","maxWidth","maxHeight","backgroundColor","borderColor","borderLeftColor","borderRightColor","borderTopColor","borderBottomColor","borderRadius","borderTopLeftRadius","borderTopRightRadius","borderBottomLeftRadius","borderBottomRightRadius","borderWidth","borderLeftWidth","borderRightWidth","borderTopWidth","borderBottomWidth","color","fontSize","fontWeight","lineHeight","letterSpacing","left","right","top","bottom","margin","marginTop","marginBottom","marginLeft","marginRight","marginHorizontal","marginVertical","padding","paddingTop","paddingBottom","paddingLeft","paddingRight","paddingHorizontal","paddingVertical","gap","rowGap","columnGap","flex","flexGrow","flexShrink","canAnimateProperty","animateOnly","startsWith","includes","createWebAnimatedComponent","defaultTag","isText","Component","createAnimatedComponent","forwardRef","propsIn","ref","_hooks_usePropsTransform","forwardedRef","render","rest","hostRef","useRef","composedRefs","useComposedRefs","stateRef","host","current","themeState","useThemeWithState","_themeState_theme","_themeState_name","result","getSplitStyles","Text","staticConfig","View","theme","name","unmounted","isAnimated","noClass","_result_viewProps","viewProps","Element","transformedProps","hooks","usePropsTransform","call","jsx","acceptRenderProp","AnimatedView","AnimatedText","buildTransitionConfig","transition","animations","animationState","styleKeys","normalized","normalizeTransition","effectiveKey","getEffectiveAnimation","_animations_effectiveKey","base","duration","damping","stiffness","mass","propertyConfigs","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_iterator","iterator","_step","done","propAnimation","properties","_animations_propAnimation","configType","_animations_configType","baseForProp","err","return","baseConfig","getStyleKeys","keys","Set","t","add","animationsConfig","needsCustomComponent","isReactNative","inputStyle","outputStyle","avoidReRenders","usePresence","ResetPresence","useAnimatedNumber","initial","sharedValue","useSharedValue","useMemo","getInstance","getValue","setValue","arguments","length","onFinish","cb","runOnJS","animationConfig","runOnUI","animationConfig2","stop","cancelAnimation","useAnimatedNumberReaction","param","onValue","instance","useAnimatedReaction","prev","useAnimatedNumberStyle","val","getStyle","useAnimatedStyle","styleVal","useDerivedValue","animatedStyle","useAnimatedNumbersStyle","vals","instances","v","currentValues","inst","useAnimations","animationProps","props","presence","componentState","useStyleEmitter","themeName","styleState","isHydrating","isMounting","isEntering","isExiting","wasEnteringRef","justFinishedEntering","useEffect","_styleState_effectiveTransition","effectiveTransition","animationKey","disableAnimation","sendExitComplete","exitCycleIdRef","pendingExitKeysRef","exitCompletedRef","wasExitingRef","justStartedExiting","justStoppedExiting","markExitKeyDone","useEvent","key3","cycleId","finished","delete","size","isExitingRef","exitCycleIdShared","clear","useIsomorphicLayoutEffect","animatedTargetsRef","staticTargetsRef","transformTargetsRef","animatedStyles","staticStyles","animated","staticStyles2","animateOnly2","rawValue","key1","configRef","nextStyle","effectiveTransition2","statics","transforms2","transitionToUse","newBase","newPropertyConfigs","_iteratorNormalCompletion2","_didIteratorError2","_iteratorError2","_iterator2","_step2","t2","tKey2","tVal","push","debug","console","info","transforms","exitKeysRegistered","exitKeys","key2","tKey","_loop","key12","animatedValues","_config_propertyConfigs_key","propConfig","currentlyExiting","capturedKey","capturedCycleId","currentCycleId"],"sources":["../../src/createAnimations.tsx"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["__toCommonJS","mod","__copyProps","__defProp","value","createAnimations_exports","__export","createAnimations","module","exports","import_jsx_runtime","require","import_animation_helpers","import_core","import_use_presence","import_react","__toESM","import_react_native_reanimated","_type_of","obj","Symbol","constructor","getDefaultExport","module2","__esModule","toStringTag","default","Animated","silenceAnimatedComponentDevCheck","style","process","env","NODE_ENV","isWeb","Object","defineProperty","configurable","enumerable","resolveDynamicValue","isDark","dynamic","dark","light","cloneAnimationValue","Array","isArray","map","next","key","cloneTransitionConfig","config","createReanimatedConfig","source","applyAnimation","targetValue","callback","delay","reanimatedConfig","animatedValue","type","withTiming","withSpring","withDelay","ANIMATABLE_PROPERTIES","transform","opacity","height","width","minWidth","minHeight","maxWidth","maxHeight","backgroundColor","borderColor","borderLeftColor","borderRightColor","borderTopColor","borderBottomColor","borderRadius","borderTopLeftRadius","borderTopRightRadius","borderBottomLeftRadius","borderBottomRightRadius","borderWidth","borderLeftWidth","borderRightWidth","borderTopWidth","borderBottomWidth","color","fontSize","fontWeight","lineHeight","letterSpacing","left","right","top","bottom","margin","marginTop","marginBottom","marginLeft","marginRight","marginHorizontal","marginVertical","padding","paddingTop","paddingBottom","paddingLeft","paddingRight","paddingHorizontal","paddingVertical","gap","rowGap","columnGap","flex","flexGrow","flexShrink","canAnimateProperty","animateOnly","startsWith","includes","createWebAnimatedComponent","defaultTag","isText","Component","createAnimatedComponent","forwardRef","propsIn","ref","_hooks_usePropsTransform","forwardedRef","render","rest","hostRef","useRef","composedRefs","useComposedRefs","stateRef","host","current","themeState","useThemeWithState","_themeState_theme","_themeState_name","result","getSplitStyles","Text","staticConfig","View","theme","name","unmounted","isAnimated","noClass","_result_viewProps","viewProps","Element","transformedProps","hooks","usePropsTransform","call","jsx","acceptRenderProp","AnimatedView","AnimatedText","buildTransitionConfig","transition","animations","animationState","styleKeys","normalized","normalizeTransition","effectiveKey","getEffectiveAnimation","_animations_effectiveKey","base","duration","damping","stiffness","mass","propertyConfigs","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_iterator","iterator","_step","done","propAnimation","properties","_animations_propAnimation","configType","_animations_configType","baseForProp","err","return","baseConfig","getStyleKeys","keys","Set","t","add","animationsConfig","needsCustomComponent","isReactNative","inputStyle","outputStyle","avoidReRenders","usePresence","ResetPresence","useAnimatedNumber","initial","sharedValue","useSharedValue","useMemo","getInstance","getValue","setValue","arguments","length","onFinish","cb","runOnJS","animationConfig","runOnUI","animationConfig2","stop","cancelAnimation","useAnimatedNumberReaction","param","onValue","instance","useAnimatedReaction","prev","useAnimatedNumberStyle","val","getStyle","useAnimatedStyle","styleVal","useDerivedValue","animatedStyle","useAnimatedNumbersStyle","vals","instances","v","currentValues","inst","useAnimations","animationProps","props","presence","componentState","useStyleEmitter","themeName","styleState","isHydrating","isMounting","isEntering","isExiting","wasEnteringRef","justFinishedEntering","useEffect","_styleState_effectiveTransition","effectiveTransition","animationKey","disableAnimation","sendExitComplete","exitCycleIdRef","pendingExitKeysRef","exitCompletedRef","wasExitingRef","justStartedExiting","justStoppedExiting","markExitKeyDone","useEvent","key3","cycleId","finished","staticStyles","delete","size","isExitingRef","exitCycleIdShared","clear","useIsomorphicLayoutEffect","animatedTargetsRef","staticTargetsRef","transformTargetsRef","animatedStyles","animated","staticStyles2","animateOnly2","rawValue","key1","pseudoActiveRef","isExitingJSRef","configRef","nextStyle","effectiveTransition2","pseudoActive","statics","transforms2","transitionToUse","newBase","newPropertyConfigs","_iteratorNormalCompletion2","_didIteratorError2","_iteratorError2","_iterator2","_step2","t2","tKey2","tVal","push","debug","console","info","transforms","exitKeysRegistered","exitKeys","key2","tKey","_loop","key12","animatedValues","_config_propertyConfigs_key","propConfig","currentlyExiting","capturedKey","capturedCycleId","currentCycleId"],"sources":["../../src/createAnimations.tsx"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
@@ -452,6 +452,16 @@ function createAnimations(animationsConfig) {
|
|
|
452
452
|
staticStyles: staticStyles2
|
|
453
453
|
};
|
|
454
454
|
}, [disableAnimation, style, isDark, isMounting, props.animateOnly]);
|
|
455
|
+
const pseudoActiveRef = useRef(false);
|
|
456
|
+
const isExitingJSRef = useRef(false);
|
|
457
|
+
isExitingJSRef.current = isExiting;
|
|
458
|
+
useIsomorphicLayoutEffect(() => {
|
|
459
|
+
if ((isExiting || !pseudoActiveRef.current) && animatedTargetsRef.value !== null) {
|
|
460
|
+
animatedTargetsRef.value = null;
|
|
461
|
+
staticTargetsRef.value = null;
|
|
462
|
+
transformTargetsRef.value = null;
|
|
463
|
+
}
|
|
464
|
+
});
|
|
455
465
|
const {
|
|
456
466
|
baseConfig,
|
|
457
467
|
propertyConfigs
|
|
@@ -465,8 +475,8 @@ function createAnimations(animationsConfig) {
|
|
|
465
475
|
propertyConfigs: {}
|
|
466
476
|
};
|
|
467
477
|
}
|
|
468
|
-
return buildTransitionConfig(
|
|
469
|
-
}, [isHydrating,
|
|
478
|
+
return buildTransitionConfig(effectiveTransition, animations, animationState, getStyleKeys(animatedStyles));
|
|
479
|
+
}, [isHydrating, effectiveTransition, animatedStyles, animationState]);
|
|
470
480
|
const configRef = useSharedValue({
|
|
471
481
|
baseConfig,
|
|
472
482
|
propertyConfigs,
|
|
@@ -481,7 +491,9 @@ function createAnimations(animationsConfig) {
|
|
|
481
491
|
isHydrating
|
|
482
492
|
};
|
|
483
493
|
}, [baseConfig, propertyConfigs, disableAnimation, isHydrating]);
|
|
484
|
-
useStyleEmitter?.((nextStyle, effectiveTransition2) => {
|
|
494
|
+
useStyleEmitter?.((nextStyle, effectiveTransition2, pseudoActive) => {
|
|
495
|
+
if (isExitingJSRef.current) return;
|
|
496
|
+
pseudoActiveRef.current = pseudoActive === true;
|
|
485
497
|
const animateOnly = props.animateOnly;
|
|
486
498
|
const animated = {};
|
|
487
499
|
const statics = {};
|
|
@@ -582,7 +594,7 @@ function createAnimations(animationsConfig) {
|
|
|
582
594
|
const emitterTransforms = transformTargetsRef.value;
|
|
583
595
|
const hasEmitterUpdates = emitterAnimated !== null;
|
|
584
596
|
const animatedValues = hasEmitterUpdates ? emitterAnimated : animatedStyles;
|
|
585
|
-
const staticValues = hasEmitterUpdates ? emitterStatic :
|
|
597
|
+
const staticValues = hasEmitterUpdates ? emitterStatic : staticStyles;
|
|
586
598
|
const currentlyExiting = isExitingRef.value;
|
|
587
599
|
const currentCycleId = exitCycleIdShared.value;
|
|
588
600
|
for (const key in staticValues) {
|
|
@@ -636,7 +648,7 @@ function createAnimations(animationsConfig) {
|
|
|
636
648
|
}
|
|
637
649
|
}
|
|
638
650
|
return result;
|
|
639
|
-
}, isWeb ? [animatedStyles, baseConfig, propertyConfigs, disableAnimation, isHydrating,
|
|
651
|
+
}, isWeb ? [animatedStyles, staticStyles, baseConfig, propertyConfigs, disableAnimation, isHydrating,
|
|
640
652
|
// pass SharedValues so the mapper watches them on web (no babel plugin)
|
|
641
653
|
animatedTargetsRef, staticTargetsRef, transformTargetsRef, isExitingRef, exitCycleIdShared, markExitKeyDone] : void 0);
|
|
642
654
|
silenceAnimatedComponentDevCheck(animatedStyle);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["getEffectiveAnimation","normalizeTransition","getSplitStyles","hooks","isWeb","Text","useComposedRefs","useEvent","useIsomorphicLayoutEffect","useThemeWithState","View","ResetPresence","usePresence","React","forwardRef","useMemo","useRef","Animated_","cancelAnimation","runOnJS","runOnUI","useAnimatedReaction","useAnimatedStyle","useDerivedValue","useSharedValue","withDelay","withSpring","withTiming","jsx","getDefaultExport","module","mod","__esModule","Symbol","toStringTag","default","Animated","silenceAnimatedComponentDevCheck","style","process","env","NODE_ENV","Object","defineProperty","configurable","enumerable","value","resolveDynamicValue","isDark","dynamic","dark","light","cloneAnimationValue","Array","isArray","map","next","key","cloneTransitionConfig","config","createReanimatedConfig","source","applyAnimation","targetValue","callback","delay","reanimatedConfig","animatedValue","type","ANIMATABLE_PROPERTIES","transform","opacity","height","width","minWidth","minHeight","maxWidth","maxHeight","backgroundColor","borderColor","borderLeftColor","borderRightColor","borderTopColor","borderBottomColor","borderRadius","borderTopLeftRadius","borderTopRightRadius","borderBottomLeftRadius","borderBottomRightRadius","borderWidth","borderLeftWidth","borderRightWidth","borderTopWidth","borderBottomWidth","color","fontSize","fontWeight","lineHeight","letterSpacing","left","right","top","bottom","margin","marginTop","marginBottom","marginLeft","marginRight","marginHorizontal","marginVertical","padding","paddingTop","paddingBottom","paddingLeft","paddingRight","paddingHorizontal","paddingVertical","gap","rowGap","columnGap","flex","flexGrow","flexShrink","canAnimateProperty","animateOnly","startsWith","includes","createWebAnimatedComponent","defaultTag","isText","Component","createAnimatedComponent","propsIn","ref","forwardedRef","render","rest","hostRef","composedRefs","stateRef","host","current","themeState","result","staticConfig","theme","name","unmounted","isAnimated","noClass","viewProps","Element","transformedProps","usePropsTransform","acceptRenderProp","AnimatedView","AnimatedText","buildTransitionConfig","transition","animations","animationState","styleKeys","normalized","effectiveKey","base","duration","damping","stiffness","mass","propertyConfigs","propAnimation","properties","configType","baseForProp","baseConfig","getStyleKeys","keys","Set","t","add","createAnimations","animationsConfig","needsCustomComponent","isReactNative","inputStyle","outputStyle","avoidReRenders","useAnimatedNumber","initial","sharedValue","getInstance","getValue","setValue","onFinish","cb","animationConfig","animationConfig2","stop","useAnimatedNumberReaction","onValue","instance","prev","useAnimatedNumberStyle","val","getStyle","styleVal","animatedStyle","useAnimatedNumbersStyle","vals","instances","v","currentValues","inst","useAnimations","animationProps","props","presence","componentState","useStyleEmitter","themeName","styleState","isHydrating","isMounting","isEntering","isExiting","wasEnteringRef","justFinishedEntering","useEffect","effectiveTransition","animationKey","disableAnimation","sendExitComplete","exitCycleIdRef","pendingExitKeysRef","exitCompletedRef","wasExitingRef","justStartedExiting","justStoppedExiting","markExitKeyDone","cycleId","finished","delete","size","isExitingRef","exitCycleIdShared","clear","animatedTargetsRef","staticTargetsRef","transformTargetsRef","animatedStyles","staticStyles","animated","staticStyles2","rawValue","configRef","nextStyle","effectiveTransition2","statics","transforms","transitionToUse","newBase","newPropertyConfigs","tKey","tVal","push","debug","console","info","exitKeysRegistered","exitKeys","length","emitterAnimated","emitterStatic","emitterTransforms","hasEmitterUpdates","animatedValues","staticValues","currentlyExiting","currentCycleId","propConfig","capturedKey","capturedCycleId","validTransforms","transformKey"],"sources":["../../src/createAnimations.tsx"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["getEffectiveAnimation","normalizeTransition","getSplitStyles","hooks","isWeb","Text","useComposedRefs","useEvent","useIsomorphicLayoutEffect","useThemeWithState","View","ResetPresence","usePresence","React","forwardRef","useMemo","useRef","Animated_","cancelAnimation","runOnJS","runOnUI","useAnimatedReaction","useAnimatedStyle","useDerivedValue","useSharedValue","withDelay","withSpring","withTiming","jsx","getDefaultExport","module","mod","__esModule","Symbol","toStringTag","default","Animated","silenceAnimatedComponentDevCheck","style","process","env","NODE_ENV","Object","defineProperty","configurable","enumerable","value","resolveDynamicValue","isDark","dynamic","dark","light","cloneAnimationValue","Array","isArray","map","next","key","cloneTransitionConfig","config","createReanimatedConfig","source","applyAnimation","targetValue","callback","delay","reanimatedConfig","animatedValue","type","ANIMATABLE_PROPERTIES","transform","opacity","height","width","minWidth","minHeight","maxWidth","maxHeight","backgroundColor","borderColor","borderLeftColor","borderRightColor","borderTopColor","borderBottomColor","borderRadius","borderTopLeftRadius","borderTopRightRadius","borderBottomLeftRadius","borderBottomRightRadius","borderWidth","borderLeftWidth","borderRightWidth","borderTopWidth","borderBottomWidth","color","fontSize","fontWeight","lineHeight","letterSpacing","left","right","top","bottom","margin","marginTop","marginBottom","marginLeft","marginRight","marginHorizontal","marginVertical","padding","paddingTop","paddingBottom","paddingLeft","paddingRight","paddingHorizontal","paddingVertical","gap","rowGap","columnGap","flex","flexGrow","flexShrink","canAnimateProperty","animateOnly","startsWith","includes","createWebAnimatedComponent","defaultTag","isText","Component","createAnimatedComponent","propsIn","ref","forwardedRef","render","rest","hostRef","composedRefs","stateRef","host","current","themeState","result","staticConfig","theme","name","unmounted","isAnimated","noClass","viewProps","Element","transformedProps","usePropsTransform","acceptRenderProp","AnimatedView","AnimatedText","buildTransitionConfig","transition","animations","animationState","styleKeys","normalized","effectiveKey","base","duration","damping","stiffness","mass","propertyConfigs","propAnimation","properties","configType","baseForProp","baseConfig","getStyleKeys","keys","Set","t","add","createAnimations","animationsConfig","needsCustomComponent","isReactNative","inputStyle","outputStyle","avoidReRenders","useAnimatedNumber","initial","sharedValue","getInstance","getValue","setValue","onFinish","cb","animationConfig","animationConfig2","stop","useAnimatedNumberReaction","onValue","instance","prev","useAnimatedNumberStyle","val","getStyle","styleVal","animatedStyle","useAnimatedNumbersStyle","vals","instances","v","currentValues","inst","useAnimations","animationProps","props","presence","componentState","useStyleEmitter","themeName","styleState","isHydrating","isMounting","isEntering","isExiting","wasEnteringRef","justFinishedEntering","useEffect","effectiveTransition","animationKey","disableAnimation","sendExitComplete","exitCycleIdRef","pendingExitKeysRef","exitCompletedRef","wasExitingRef","justStartedExiting","justStoppedExiting","markExitKeyDone","cycleId","finished","delete","size","isExitingRef","exitCycleIdShared","clear","animatedTargetsRef","staticTargetsRef","transformTargetsRef","animatedStyles","staticStyles","animated","rawValue","staticStyles2","pseudoActiveRef","isExitingJSRef","configRef","nextStyle","effectiveTransition2","pseudoActive","statics","transforms","transitionToUse","newBase","newPropertyConfigs","tKey","tVal","push","debug","console","info","exitKeysRegistered","exitKeys","length","emitterAnimated","emitterStatic","emitterTransforms","hasEmitterUpdates","animatedValues","staticValues","currentlyExiting","currentCycleId","propConfig","capturedKey","capturedCycleId","validTransforms","transformKey"],"sources":["../../src/createAnimations.tsx"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
@@ -513,6 +513,16 @@ function createAnimations(animationsConfig) {
|
|
|
513
513
|
staticStyles: staticStyles2
|
|
514
514
|
};
|
|
515
515
|
}, [disableAnimation, style, isDark, isMounting, props.animateOnly]);
|
|
516
|
+
var pseudoActiveRef = useRef(false);
|
|
517
|
+
var isExitingJSRef = useRef(false);
|
|
518
|
+
isExitingJSRef.current = isExiting;
|
|
519
|
+
useIsomorphicLayoutEffect(function () {
|
|
520
|
+
if ((isExiting || !pseudoActiveRef.current) && animatedTargetsRef.value !== null) {
|
|
521
|
+
animatedTargetsRef.value = null;
|
|
522
|
+
staticTargetsRef.value = null;
|
|
523
|
+
transformTargetsRef.value = null;
|
|
524
|
+
}
|
|
525
|
+
});
|
|
516
526
|
var {
|
|
517
527
|
baseConfig,
|
|
518
528
|
propertyConfigs
|
|
@@ -526,8 +536,8 @@ function createAnimations(animationsConfig) {
|
|
|
526
536
|
propertyConfigs: {}
|
|
527
537
|
};
|
|
528
538
|
}
|
|
529
|
-
return buildTransitionConfig(
|
|
530
|
-
}, [isHydrating,
|
|
539
|
+
return buildTransitionConfig(effectiveTransition, animations, animationState, getStyleKeys(animatedStyles));
|
|
540
|
+
}, [isHydrating, effectiveTransition, animatedStyles, animationState]);
|
|
531
541
|
var configRef = useSharedValue({
|
|
532
542
|
baseConfig,
|
|
533
543
|
propertyConfigs,
|
|
@@ -542,7 +552,9 @@ function createAnimations(animationsConfig) {
|
|
|
542
552
|
isHydrating
|
|
543
553
|
};
|
|
544
554
|
}, [baseConfig, propertyConfigs, disableAnimation, isHydrating]);
|
|
545
|
-
useStyleEmitter === null || useStyleEmitter === void 0 ? void 0 : useStyleEmitter(function (nextStyle, effectiveTransition2) {
|
|
555
|
+
useStyleEmitter === null || useStyleEmitter === void 0 ? void 0 : useStyleEmitter(function (nextStyle, effectiveTransition2, pseudoActive) {
|
|
556
|
+
if (isExitingJSRef.current) return;
|
|
557
|
+
pseudoActiveRef.current = pseudoActive === true;
|
|
546
558
|
var animateOnly2 = props.animateOnly;
|
|
547
559
|
var animated = {};
|
|
548
560
|
var statics = {};
|
|
@@ -698,7 +710,7 @@ function createAnimations(animationsConfig) {
|
|
|
698
710
|
var emitterTransforms = transformTargetsRef.value;
|
|
699
711
|
var hasEmitterUpdates = emitterAnimated !== null;
|
|
700
712
|
var animatedValues = hasEmitterUpdates ? emitterAnimated : animatedStyles;
|
|
701
|
-
var staticValues = hasEmitterUpdates ? emitterStatic :
|
|
713
|
+
var staticValues = hasEmitterUpdates ? emitterStatic : staticStyles;
|
|
702
714
|
var currentlyExiting = isExitingRef.value;
|
|
703
715
|
var currentCycleId = exitCycleIdShared.value;
|
|
704
716
|
for (var key3 in staticValues) {
|
|
@@ -758,7 +770,7 @@ function createAnimations(animationsConfig) {
|
|
|
758
770
|
}
|
|
759
771
|
}
|
|
760
772
|
return result;
|
|
761
|
-
}, isWeb ? [animatedStyles, baseConfig, propertyConfigs, disableAnimation, isHydrating,
|
|
773
|
+
}, isWeb ? [animatedStyles, staticStyles, baseConfig, propertyConfigs, disableAnimation, isHydrating,
|
|
762
774
|
// pass SharedValues so the mapper watches them on web (no babel plugin)
|
|
763
775
|
animatedTargetsRef, staticTargetsRef, transformTargetsRef, isExitingRef, exitCycleIdShared, markExitKeyDone] : void 0);
|
|
764
776
|
silenceAnimatedComponentDevCheck(animatedStyle);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["jsx","_jsx","getEffectiveAnimation","normalizeTransition","getSplitStyles","hooks","isWeb","Text","useComposedRefs","useEvent","useIsomorphicLayoutEffect","useThemeWithState","View","ResetPresence","usePresence","React","forwardRef","useMemo","useRef","Animated_","cancelAnimation","runOnJS","runOnUI","useAnimatedReaction","useAnimatedStyle","useDerivedValue","useSharedValue","withDelay","withSpring","withTiming","_type_of","obj","Symbol","constructor","getDefaultExport","module","mod","__esModule","toStringTag","default","Animated","silenceAnimatedComponentDevCheck","style","process","env","NODE_ENV","Object","defineProperty","configurable","enumerable","value","resolveDynamicValue","isDark","dynamic","dark","light","cloneAnimationValue","Array","isArray","map","next","key","cloneTransitionConfig","config","createReanimatedConfig","source","applyAnimation","targetValue","callback","delay","reanimatedConfig","animatedValue","type","ANIMATABLE_PROPERTIES","transform","opacity","height","width","minWidth","minHeight","maxWidth","maxHeight","backgroundColor","borderColor","borderLeftColor","borderRightColor","borderTopColor","borderBottomColor","borderRadius","borderTopLeftRadius","borderTopRightRadius","borderBottomLeftRadius","borderBottomRightRadius","borderWidth","borderLeftWidth","borderRightWidth","borderTopWidth","borderBottomWidth","color","fontSize","fontWeight","lineHeight","letterSpacing","left","right","top","bottom","margin","marginTop","marginBottom","marginLeft","marginRight","marginHorizontal","marginVertical","padding","paddingTop","paddingBottom","paddingLeft","paddingRight","paddingHorizontal","paddingVertical","gap","rowGap","columnGap","flex","flexGrow","flexShrink","canAnimateProperty","animateOnly","startsWith","includes","createWebAnimatedComponent","defaultTag","isText","Component","createAnimatedComponent","propsIn","ref","_hooks_usePropsTransform","forwardedRef","render","rest","hostRef","composedRefs","stateRef","host","current","themeState","_themeState_theme","_themeState_name","result","staticConfig","theme","name","unmounted","isAnimated","noClass","_result_viewProps","viewProps","Element","transformedProps","usePropsTransform","call","acceptRenderProp","AnimatedView","AnimatedText","buildTransitionConfig","transition","animations","animationState","styleKeys","normalized","effectiveKey","_animations_effectiveKey","base","duration","damping","stiffness","mass","propertyConfigs","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_iterator","iterator","_step","done","propAnimation","properties","_animations_propAnimation","configType","_animations_configType","baseForProp","err","return","baseConfig","getStyleKeys","keys","Set","t","add","createAnimations","animationsConfig","needsCustomComponent","isReactNative","inputStyle","outputStyle","avoidReRenders","useAnimatedNumber","initial","sharedValue","getInstance","getValue","setValue","arguments","length","onFinish","cb","animationConfig","animationConfig2","stop","useAnimatedNumberReaction","param","onValue","instance","prev","useAnimatedNumberStyle","val","getStyle","styleVal","animatedStyle","useAnimatedNumbersStyle","vals","instances","v","currentValues","inst","useAnimations","animationProps","props","presence","componentState","useStyleEmitter","themeName","styleState","isHydrating","isMounting","isEntering","isExiting","wasEnteringRef","justFinishedEntering","useEffect","_styleState_effectiveTransition","effectiveTransition","animationKey","disableAnimation","sendExitComplete","exitCycleIdRef","pendingExitKeysRef","exitCompletedRef","wasExitingRef","justStartedExiting","justStoppedExiting","markExitKeyDone","key3","cycleId","finished","delete","size","isExitingRef","exitCycleIdShared","clear","animatedTargetsRef","staticTargetsRef","transformTargetsRef","animatedStyles","staticStyles","animated","staticStyles2","animateOnly2","rawValue","key1","configRef","nextStyle","effectiveTransition2","statics","transforms2","transitionToUse","newBase","newPropertyConfigs","_iteratorNormalCompletion2","_didIteratorError2","_iteratorError2","_iterator2","_step2","t2","tKey2","tVal","push","debug","console","info","transforms","exitKeysRegistered","exitKeys","key2","tKey","_loop","key12","animatedValues","_config_propertyConfigs_key","propConfig","currentlyExiting","capturedKey","capturedCycleId","currentCycleId","emitterAnimated","emitterStatic","emitterTransforms","hasEmitterUpdates","staticValues"],"sources":["../../src/createAnimations.tsx"],"sourcesContent":[null],"mappings":"AAAA,SAASA,GAAA,IAAAC,IAAA,2BAAuB;AAChC,SAAAC,qBAAA,EAAAC,mBAAA;AAAA,SACEC,cAAA,EAAAC,KAAA,EAAAC,KAAA,EAAAC,IAAA,EAAAC,eAAA,EAAAC,QAAA,EAAAC,yBAAA,EAAAC,iBAAA,EAAAC,IAAA;AAAA,SACAC,aAAA,EAAAC,WAAA;AAAA,OACAC,KAAA,IAAAC,UAAA,EAAAC,OAAA,EAAAC,MAAA;AAAA,OACAC,SAAA,IAAAC,eAAA,EAAAC,OAAA,EAAAC,OAAA,EAAAC,mBAAA,EAAAC,gBAAA,EAAAC,eAAA,EAAAC,cAAA,EAAAC,SAAA,EAAAC,UAAA,EAAAC,UAAA;AAAA,SACAC,SAAAC,GAAA;EACA;;EACA,OAAAA,GAAA,WAAAC,MAAA,oBAAAD,GAAA,CAAAE,WAAA,KAAAD,MAAA,qBAAAD,GAAA;AAAA;AACA,IACAG,gBAAA,YAAAA,CAAAC,MAAA;EAAA,IAAAC,GAGK,GAAAD,MAAA;EACP,IAAAC,GAAS,CAAAC,UAAA,IAAeD,GAAA,CAAAJ,MAAA,CAAAM,WAAmB;IAC3C,OAAOF,GAAA,CAAAG,OAAS,IAAAH,GAAY;EAE5B;EACE,OAAAA,GAAA;AAAA;AACA,IACAI,QAAA,GAAAN,gBAAA,CAAAf,SAAA;AAAA,IACAsB,gCAAA,YAAAA,CAAAC,KAAA;EACA,IAAAC,OAAA,CAAAC,GAAA,CAAAC,QAAA,sBAAAvC,KAAA,KAAAoC,KAAA,YAAAA,KAAA,iCAAAZ,QAAA,CAAAY,KAAA;IACA;EACA;EACAI,MAAA,CAAAC,cAAA,CAAAL,KAAA;IACAM,YAAA;IACAC,UAAA;IAAAC,KAGK;EA8RM;AApRb;AACE,IAAAC,mBAAY,YAAAA,CAAAD,KAAA,EAAAE,MAAA;EACZ,IAAIF,KAAI,aAAc,QAAIA,KAAO,gBAAiB,cAAU,GAAApB,QAAA,CAAAoB,KAAA,gCAAAA,KAAA,IAAApB,QAAA,CAAAoB,KAAA,CAAAG,OAAA;IAC1D,IAAAA,OAAW,GAAAH,KAAA,CAAAG,OAAW;IACxB,OAAAD,MAAA,GAAAC,OAAA,CAAAC,IAAA,GAAAD,OAAA,CAAAE,KAAA;EACA;EACF,OAAAL,KAAA;AAEA;AAEA,IAAAM,mBAAM,YAAAA,CAAAN,KAAA,EAAoC;EACxC,IACEO,KAAA,CAAAC,OAAY,CAAAR,KAAA;IAKZ,OAAAA,KAAA,CAAAS,GAAA,CAAAH,mBAAA;EACF;EAIA,IAAAN,KAAO,YAAAA,KAAe,KAAO,4BAA8BpB,QAAA,CAAAoB,KAAA;IACzD,IAAAU,IAAA;IACA,SAAAC,GAAY,IAAAX,KAAA;MACZU,IAAA,CAAOC,GAAA,IAAAL,mBAAA,CAAAN,KAAA,CAAAW,GAAA;IACR;IACH,OAAAD,IAAA;EAiCA;EACE,OACEV,KAAA;AAKA;AACA,IAAAY,qBAAgB,GAAQ,SAAAA,CAAOC,MAAQ;EACzC,OAAAP,mBAAA,CAAAO,MAAA;AACA;AACF,IAAAC,sBAAA,YAAAA,CAAAD,MAAA;EAKA,SAAM;;EACJ,IAAIH,IAAA,GAAM;EACR,IAAAK,MAAO,GAAAF,MAAU;EACnB,SAAAF,GAAA,IAAAI,MAAA;IAEA,IAAIJ,GAAA,KAAS,MAAO,IAAAA,GAAA,KAAU,SAAU;IACtC,IAAAX,KAAM,GAAAe,MAAiC,CAAAJ,GAAA;IACvC,IAAAX,KAAA,KAAW,KAAO;MAChBU,IAAA,CAAKC,GAAG,IAAIX,KAAA;IACd;EACA;EACF,OAAAU,IAAA;AAEA;AACF,IAAAM,cAAA,YAAAA,CAAAC,WAAA,EAAAJ,MAAA,EAAAK,QAAA;EAEA,SAAM;;EACJ,IAAAC,KAAO,GAAAN,MAAA,CAAAM,KAAA;EACT,IAAAC,gBAAA,GAAAN,sBAAA,CAAAD,MAAA;EAEA,IAAMQ,aAAA;EACJ,IAAAR,MAAA,CAAAS,IAAA;IACAD,aAAuC,GAAA1C,UAAA,CAAAsC,WAAA,EAAAG,gBAAA,EAAAF,QAAA;EACvC,OAAM;IAENG,aAAW,GAAO3C,UAAQ,CAAAuC,WAAA,EAAAG,gBAAA,EAAAF,QAAA;EACxB;EACA,IAAAC,KAAM,IAAAA,KAAQ,MAAO;IACrBE,aAAI,GAAU5C,SAAW,CAAA0C,KAAA,EAAAE,aAAA;EACvB;EAAY,OACdA,aAAA;AAAA;AAGF,IAAAE,qBAAO;EACT;EAKAC,SAAM;EAKJ;EACAC,OAAM;EACN;EAEAC,MAAI;EACJC,KAAI,MAAO;EACTC,QAAA;EAAgBC,SACd;EAAAC,QACA;EAAAC,SACA;EAAA;EAEJC,eAAO;EACL;EAAgBC,WACd;EAAAC,eACA;EAAAC,gBACA;EAAAC,cACF;EACFC,iBAAA;EAEA;EACEC,YAAA,MAAgB;EAClBC,mBAAA;EAEAC,oBAAO;EACTC,sBAAA;EAMAC,uBAAM,MAAiD;EAAA;EAErDC,WAAW;EAAAC,eAAA;EAEXC,gBAAS;EAAAC,cAAA;EAETC,iBAAQ;EACR;EACAC,KAAA,MAAU;EACVC,QAAA,MAAW;EACXC,UAAU;EACVC,UAAA,EAAW;EAAAC,aAAA;EAEX;EAAiBC,IAAA;EAEjBC,KAAA;EACAC,GAAA;EACAC,MAAA;EACA;EACAC,MAAA;EAAmBC,SAAA;EAEnBC,YAAA,EAAc;EACdC,UAAA;EACAC,WAAA;EACAC,gBAAA;EACAC,cAAA;EAAyB;EAEzBC,OAAA,MAAa;EACbC,UAAA;EACAC,aAAA,MAAkB;EAClBC,WAAA,MAAgB;EAChBC,YAAA;EAAmBC,iBAAA;EAEnBC,eAAO;EACP;EACAC,GAAA;EACAC,MAAA,MAAY;EACZC,SAAA,MAAe;EAAAC,IAAA;EAEfC,QAAM;EACNC,UAAO;AAAA;AACF,IACLC,kBAAQ,YAAAA,CAAAlE,GAAA,EAAAX,KAAA,EAAA8E,WAAA;EAAA,KAAAvD,qBAAA,CAAAZ,GAAA;EAER,IAAAX,KAAQ;EACR,WAAWA,KAAA,iBAAAA,KAAA,CAAA+E,UAAA;EACX,IAAAD,WAAc,KAAAA,WAAA,CAAAE,QAAA,CAAArE,GAAA;EACd;AAAY;AACC,SACbsE,0BAAkBA,CAAAC,UAAA;EAClB,IAAAC,MAAA,GAAAD,UAAgB;EAAA,IAAAE,SAAA,GAAA9F,QAAA,CAAA+F,uBAAA,gBAAAvH,UAAA,WAAAwH,OAAA,EAAAC,GAAA;IAEhB,IAAAC,wBAAS;IACT;MAAAC,YAAY;MAAAC,MAAA,GAAAR,UAAA;MAAA,GAAAS;IAAA,IAAAL,OAAA;IACZ,IAAAM,OAAA,GAAe5H,MAAA;IACf,IAAA6H,YAAa,GAAAvI,eAAA,CAAAmI,YAAA,EAAAF,GAAA,EAAAK,OAAA;IACb,IAAAE,QAAc,GAAA9H,MAAA;MACd,IAAA+H,KAAA;QACA,OAAAH,OAAiB,CAAAI,OAAA;MAAA;IAEjB;IACA,OAAQC,UAAA,IAAAxI,iBAAA;IACR,IAAAyI,iBAAW,EAAAC,gBAAA;IACX,IAAMC,MAAA,GAAAlJ,cAAA,CAAAyI,IAAA,EAAAR,MAAA,GAAA9H,IAAA,CAAAgJ,YAAA,GAAA3I,IAAA,CAAA2I,YAAA,GAAAH,iBAAA,GAAAD,UAAA,aAAAA,UAAA,uBAAAA,UAAA,CAAAK,KAAA,cAAAJ,iBAAA,cAAAA,iBAAA,QAAAC,gBAAA,GAAAF,UAAA,aAAAA,UAAA,uBAAAA,UAAA,CAAAM,IAAA,cAAAJ,gBAAA,cAAAA,gBAAA;MACNK,SAAU;IACV;MACFC,UAAA;MAKMC,OAAA;IAKJ,EAAI;IACJ,IAAIC,iBAAkB;IACtB,IAAIC,SAAO,IAAAD,iBAAsB,GAAMP,MAAA,KAAW,QAASA,MAAA,KAAO,kBAAAA,MAAA,CAAAQ,SAAA,cAAAD,iBAAA,cAAAA,iBAAA;IAClE,IAAIE,OAAA,GAAAnB,MAAgB;IACpB,IAAAoB,gBAAO,IAAAtB,wBAAA,GAAArI,KAAA,CAAA4J,iBAAA,cAAAvB,wBAAA,uBAAAA,wBAAA,CAAAwB,IAAA,CAAA7J,KAAA,EAAAuI,MAAA,EAAAkB,SAAA,EAAAd,QAAA;IACT,sBAAA/I,IAAA,CAAA8J,OAAA;MAUA,GAASC,gBAAA;MACPvB,GAAM,EAAAM;IAEN;EAA2B,EACzB;EACET,SAAA,CAAM6B,gBAAgB;EACtB,OAAA7B,SAAM;AACN;AAEA,IAAA8B,YAAM,GAAAjC,0BAAgD;AAAA,IAAAkC,YAChD,GAAOlC,0BAAA;AACT,SAAAmC,qBAAeA,CAAAC,UAAA,EAAAC,UAAA,EAAAC,cAAA,EAAAC,SAAA;EAAA,IAAAC,UACjB,GAAAxK,mBAAA,CAAAoK,UAAA;EAAA,IACFK,YAAC,GAAA1K,qBAAA,CAAAyK,UAAA,EAAAF,cAAA;EAED,IAAAI,wBAAuB;EAEvB,IAAAC,IAAA,GAAMhH,qBAAS,CAAA8G,YAAA,IAAAC,wBAAA,GAAAL,UAAA,CAAAI,YAAA,eAAAC,wBAAA,cAAAA,wBAAA;IAAArG,IACb;EAAA;IACkCA,IAClC;EAAsB;EACF,IAAAmG,UAClB,CAAAtG,KAAW;IAAMyG,IACnB,GAAEhH,qBAAmB;MACvB,GAAAgH,IAAA;MAEAzG,KAAA,EAAMsG,UAAA,CAAYtG;IAClB;EACA;EAA+B,IAAAsG,UAC7B,CAAA5G,MAAA;IAAA+G,IACA,GAAAhH,qBAAA;MAAA,GACAgH,IAAA;MAAA,GACAH,UAAA,CAAA5G;IAAA,EACF;IAEA,IAAA+G,IAAA,CAAOtG,IAAA,iBAACmG,UAAS,CAAA5G,MAAG,CAAAgH,QAAA,KAAkB,KAAK,KAAAJ,UAAc,CAAA5G,MAAA,CAAAiH,OAAA,eAAAL,UAAA,CAAA5G,MAAA,CAAAkH,SAAA,eAAAN,UAAA,CAAA5G,MAAA,CAAAmH,IAAA;MAC1DJ,IAAA,GAAAhH,qBAAA;QACH,GAAAgH,IAAA;QACEtG,IAAkB;MACpB;IACF;EAEA;EACA,IAAM2G,eAAe;EAerB,IAAAC,yBACE;IAAAC,iBAEA;IAAAC,cACA,GACwB;EACxB;IACA,KAAM,IAAAC,SAAA,GAAeb,SAAA,CAAA1I,MAAA,CAAAwJ,QAAsB,KAAAC,KAAY,IAAAL,yBAAc,IAAAK,KAAA,GAAAF,SAAA,CAAA3H,IAAA,IAAA8H,IAAA,GAAAN,yBAAA;MAEjE,IAAAvH,GAAO,GAAA4H,KAAA,CAAAvI,KAAA;MACT,IAAAyI,aACK,GAAAhB,UAAW,CAAAiB,UACT,CAAA/H,GAAE;MAEX,WAAA8H,aAAA;QAEI,IAAAE,yBAAkB;QACpBV,eAAO,CAAAtH,GAAA,IAAAC,qBAAwC,EAAA+H,yBAAkB,GAAArB,UAAA,CAAAmB,aAAA,eAAAE,yBAAA,cAAAA,yBAAA,GAAAf,IAAA;MACnE,WAAAa,aAAA,YAAAA,aAAA,iCAAA7J,QAAA,CAAA6J,aAAA;QAEI,IAAAG,UAAW,GAAQH,aAAA,CAAAnH,IAAA;QACrB,IAAOuH,sBAAsB;QAG3B,IAAAC,WAAc,GAAAF,UACd,IAAAC,sBAAkB,GAAavB,UAC/B,CAAAsB,UAAW,OAAO,QAAAC,sBAClB,KAAW,KAAO,IAAAA,sBAClB,GAAAjB,IAAA,GAAWA,IAAA;QAEXK,eAAO,CAAAtH,GAAA,IAAAC,qBAAuC;UAChD,GAAAkI,WAAA;UACF,GAAAL;QAGM;MAEN,OAAW;QACTR,eAAM,CAAAtH,GAAgB,IAAAC,qBAAyB,CAAAgH,IAAA;MAC/C;IACE;EAAuB,SACrBmB,GAAA;IAAwDZ,iBAC1D;IACFC,cAAW,GAAAW,GAAA;EACT,UAAM;IACN;MAGA,KAAAb,yBAAuB,IAAAG,SAAA,CAAAW,MAAsB;QAC3CX,SAAG,CAAAW,MAAA;MAAA;IACA,UACgB;MACvB,IAAAb,iBAAO;QACL,MAAAC,cAAmB;MACrB;IACF;EAEA;EACF;IAKAa,UAAS,EAAArB,IAAA;IACPK;EACA;AACE;AACE,SAAAiB,YAASA,CAAO1J,KAAA,EAAM;EACpB,IAAA2J,IAAA,GAAK,IAAIC,GAAA,CAAAxJ,MAAO,CAAAuJ,IAAQ,CAAC3J,KAAC;EAAA,IAC5BA,KAAA,CAAAgC,SAAA,IAAAjB,KAAA,CAAAC,OAAA,CAAAhB,KAAA,CAAAgC,SAAA;IACF,IAAA0G,yBAAA;MAAAC,iBAAA;MAAAC,cAAA;IACF;MACA,KAAO,IAAAC,SAAA,GAAA7I,KAAA,CAAAgC,SAAA,CAAA1C,MAAA,CAAAwJ,QAAA,KAAAC,KAAA,IAAAL,yBAAA,IAAAK,KAAA,GAAAF,SAAA,CAAA3H,IAAA,IAAA8H,IAAA,GAAAN,yBAAA;QACT,IAAAmB,CAAA,GAAAd,KAAA,CAAAvI,KAAA;QA0BO,IAASqJ,CAAA,YAAAA,CACd,mBACoB,cAAAzK,QAAA,CAAAyK,CAAA;UAGdF,IAAA,CAAAG,GAAA,CAAA1J,MAAc,CAAAuJ,IAAA,CAAAE,CAAA;QACpB;MACE;IAAwC,EACtC,OAAMN,GAAA;MACNZ,iBAAG,GAAiB,IAAG;MACxBC,cAAA,GAAAW,GAAA;IACH;MAEA,IAAO;QACL,KAAAb,yBAAsB,IAAAG,SAAA,CAAAW,MAAA;UAChBX,SAAQ,CAAAW,MAAA;QACd;MACA;QACA,IAAAb,iBAAY;UACZ,MAAAC,cAAa;QACb;MACA;IACA;EAAA;EACA,OAAAe,IAAA;AAAA;AAAA,SAAAI,iBAAAC,gBAAA;EAAA,IAKAlC,UAAA;EACE,SAAA3G,GAAM,IAAA6I,gBAAc;IAEpBlC,UAAO,CAAA3G,GAAA,IAAAC,qBAAA;MAAAU,IACL,UAAO;MAAA,GAAAkI,gBACS,CAAA7I,GAAA;IACZ;EACA;EAAO;IACT8I,oBAEW;IACT/L,IAAA,EAAAN,KAAA,GAAA8J,YAAA,GAAA5H,QAAA,CAAA5B,IAAA;IACAL,IAAA,EAAAD,KAAA,GAAA+J,YAAO,GAAY7H,QAAA,CAAAjC,IAAA;IAAAqM,aACrB;IAAAC,UAEA,SAAS;IACPC,WAAA,EAAI,QAAO;IACTC,cAAA;IACAvC,UAAA;IAAW1J,WACb;IAIED,aAAA;IAEM;IACA;IAAkB;IAIxBmM,iBAAMA,CAAAC,OAAA;MAEN,IAAAC,WAAI,GAAAxL,cAAO,CAAAuL,OAAA;MAET,OAAAhM,OAAA,aAAY;QAAgD,OAC9D;UACEkM,YAAA,EAAQ;YACN;;YACA,OAAAD,WAAY;UAAuD;UAC7CE,QAC1BA,CAAA;YACF;;YACF,OAAAF,WAAA,CAAAhK,KAAA;UAEA;UACEmK,SAAAzJ,IAAA;YACF,IAAAG,MAAA,GAAAuJ,SAAA,CAAAC,MAAA,QAAAD,SAAA,iBAAAA,SAAA;gBACF9I,IAAA;cACC;cAAAgJ,QAAW,GAAAF,SAAA,CAAAC,MAAA,OAAAD,SAAA;YACd,IAAAvJ,MAAA,CAAAS,IAAA;cACF0I,WAAA,CAAAhK,KAAA,GAAAU,IAAA;cAAA4J,QAAA,aAAAA,QAAA,uBAAAA,QAAA;YAAA;cAAA,IAAAC,EAAA,GAAAD,QAAA;gBAKA;;gBACQnM,OAAW,CAAAmM,QAAM;cAEhB;cACC,IAAAE,eAAS,GAAA5J,qBAAA,CAAAC,MAAA;cACd,IAAMzD,KAAA,EAAS;gBACV4M,WAAS,CAAAhK,KAAM,GAAAgB,cAAA,CAAAN,IAAA,EAAA8J,eAAA,EAAAD,EAAA;cACjB,OAAQ;gBACVnM,OAAA,WAAA6C,WAAA,EAAAwJ,gBAAA;kBACF;;kBACUT,WAAQ,CAAAhK,KAAA,GAAAgB,cAAA,CAAAC,WAAA,EAAAwJ,gBAAA,EAAAF,EAAA;gBACpB,GAAA7J,IAAA,EAAA8J,eAAA;cACF;YAAA;UAAA;UAAAE,KAAA;YAKAxM,eAAuB,CAAA8L,WAAK;UAC1B;QAEA;MAEE,IACEA,WAAA,CACA;IAA8B;IACT;IAGzB;IACE;IACAW,yBAAgBA,CAAAC,KAAS,EAAAC,OAAK;MAChC,IAAC;QAAA7K;MAAA,IAAA4K,KAAA;MAED,IAAAE,QAAM,GAAA9K,KAAA,CAAAiK,WAAgB;MACpB,OAAA5L,mBAAA;QACA,OAAOyM,QAAA,CAAS9K,KAAA;MAClB,CAAC,YAAAU,IAAA,EAAAqK,IAAA;QAED,IAAAA,IAAA,KAAArK,IAAA;UAEAvC,OAAO,CAAA0M,OAAA,EAAAnK,IAAA;QACT;MAEA,IACEmK,OAAM,EAENC,QAAM,CAAgB,CACpB;IACE;IACA;IACA;IAAgC;IAClCE,sBACSA,CAAUC,GAAG,EAAAC,QAAS;MACjC,IAAAJ,QAAA,GAAAG,GAAA,CAAAhB,WAAA;MAEA,IAAA7M,KAAA;QAEA,OAAOkB,gBAAA;UACT;;UAAA,OAAA4M,QAAA,CAAAJ,QAAA,CAAA9K,KAAA;QAAA,IAAA8K,QAAA,EAKAI,QAAc,CACZ;MAAM;MACJ,IACAC,QAAA,GAAA5M,eAAA;QACA;;QACA,OAAA2M,QAAA,CAAAJ,QAAA,CAAA9K,KAAA;MAAA,EACA;MAAA,IACAoL,aAAA,GAAA9M,gBAAA;QACA;;QACA,OAAA6M,QAAA,CAAAnL,KAAA;MACF;MAGAT,gCAAoB,CAAA6L,aAAe;MACnC,OAAMA,aAAa;IACnB;IAGAC,uBAAkBA,CAAAC,IAAA,EAAAJ,QAAkB;MAGpC,IAAAK,SAAM,GAAAD,IAAA,CAAA7K,GAAiB,WAAO+K,CAAA;QAC9B,OAAMA,CAAA,CAAAvB,WAAA;MACN;MACE,IAAAmB,aAAe,GAAA9M,gBAAU;QAC1B;;QAGD,IAAMmN,aAAA,GAAAF,SAAsB,CAAA9K,GAAA,WAAYiL,IAAA;UACxC,OAAMA,IAAA,CAAA1L,KAAa;QAEnB;QAKA,OAAMkL,QAAA,IAAeO,aAAA;MAErB,GAAArO,KAAM,IAGN8N,QAAM,EAGN,GAAAK,SAAM,CAKN,QAAM;MACNhM,gCAA2B,CAAA6L,aAAoB;MAC/C,OAAMA,aAAA;IACN;IAGA;IACA;IAGA;IAAwBO,aACRA,CAAAC,cAAiB;MAE7B;QAAAC,KAAI;QAAAC,QAAY;QAAAtM,KAAA;QAAAuM,cAAwB;QAAAC,eAAA;QAAAC,SAAA;QAAAnG,QAAA;QAAAoG;MAAA,IAAAN,cAAA;MAExC,IAAAO,WAAI,GAAAJ,cAAiB,CAASvF,SAAA;MAI9B,IAAA4F,UAAA,GAAAL,cAA2B,CAAAvF,SAAU;MAGrC,IAAA6F,UAAI,KAAAN,cAAmB,CAAAvF,SAAQ;MAC7B,IAAA8F,SAAA,IAAAR,QAAiB,SAAU,IAAAA,QAAA,uBAAAA,QAAA;MAC3B,IAAAS,cAAA,GAAAvO,MAAmB,CAAAqO,UAAA;MAAA,IACrBG,oBAAA,GAAAD,cAAA,CAAAvG,OAAA,KAAAqG,UAAA;MAAAxO,KACF,CAAA4O,SAAA;QACFF,cAAA,CAAAvG,OAAA,GAAAqG,UAAA;MAGA;MACA,IAAAK,+BAA0B;MAG1B,IAAIC,mBAAA,GAAoB,CAAAD,+BAAA,GAAAR,UAAA,aAAAA,UAAA,uBAAAA,UAAA,CAAAS,mBAAA,cAAAD,+BAAA,cAAAA,+BAAA,GAAAb,KAAA,CAAAxE,UAAA;MACtB,IAAAI,UAAA,GAAexK,mBAAA,CAAA0P,mBAAA;MACf,IAAApF,cAAA,GAAiB+E,SAAU,YAAAF,UAAA,IAAAI,oBAAA;MAC3B,IAAAI,YAAA,GAAA5P,qBAAiC,CAAAyK,UAAA,EAAAF,cAAA;MACnC,IAAAsF,gBAAA,GAAAV,WAAA,KAAAS,YAAA;MAEA,IAAI1M,MAAA,IAAA+L,SAAA,KAAoB,QAAAA,SAAA,uBAAAA,SAAA,CAAAlH,UAAA;MACtB,IAAA+H,gBAAe,GAAAhB,QAAA,aAAAA,QAAA,uBAAAA,QAAA;MACf,IAAAiB,cAAA,GAAmB/O,MAAA,EAAQ;MAC7B,IAAAgP,kBAAA,GAAAhP,MAAA,oBAAAoL,GAAA;MAGA,IAAA6D,gBAAA,GAAAjP,MAA0B,MAAM;MAC9B,IAAAkP,aAAa,GAAAlP,MAAQ;MACrB,IAAAmP,kBAAkB,GAAAb,SAAQ,KAAAY,aAAe,CAAAlH,OAAA;MAC3C,IAAIoH,kBAAW,IAAAd,SAAe,IAAQY,aAAA,CAAAlH,OAAA;MAGtC,IAAAqH,eAAgB,GAAM9P,QAAA,WAAA+P,IAAA,EAAAC,OAAA,EAAAC,QAAA;QACpB,IAAAD,OAAA,KAAcR,cAAU,CAAA/G,OAAA;QACzB,IAAAiH,gBAAA,CAAAjH,OAAA;QAKDgH,kBAAM,CAAAhH,OAAqB,CAAAyH,MAAA,CAAAH,IAAA;QAC3B,IAAMN,kBAAA,CAAmBhH,OAAA,CAAA0H,IAAA,KAA+C,GAAI;UAC5ET,gBAAM,CAAAjH,OAAsB;UAC1B8G,gBAAA,aAAAA,gBAAA,uBAAAA,gBAAA;QACF;MAGA;MACE,IAAAa,YAAM,GAAoCnP,cAAC,CAAA8N,SAAA;MAC3C,IAAAsB,iBAAM,GAAwCpP,cAAC,CAAAuO,cAAA,CAAA/G,OAAA;MAC/C,IAAAmH,kBAAoB;QAEpBJ,cAAW,CAAA/G,OAAO;QAChBiH,gBAAM,CAAAjH,OAAY,GAAkC,KAAG;QACvDgH,kBAAc,CAAAhH,OAAA,CAAA6H,KAAA;MAEd;MAEA,IAAAT,kBAAI;QACFL,cAAA,CAAA/G,OAAgB;QAChBgH,kBAAA,CAAAhH,OAAA,CAAA6H,KAAA;MAAA;MAGFrQ,yBAAI,aAAwB;QAC1BmQ,YAAA,CAAS3N,KAAG,GAAIsM,SAAA;QAAyBsB,iBACpC,CAAA5N,KAAA,GAAA+M,cAAA,CAAA/G,OAAA;MACL,IAA6CsG,SAC/C,EACFS,cAAA,CAAA/G,OAAA,CAGA;MACEnI,KAAA,CAAA4O,SAAW,aAAO;QAChBS,aAAA,CAAAlH,OAAgB,GAAAsG,SAAI;MAAY;MAClC,IACFwB,kBAAA,GAAAtP,cAAA;MAEA,IAAAuP,gBAAS,GAAAvP,cAA0B;MACrC,IAAIwP,mBAAkB,GAAAxP,cAAe;MAGrC;QAAMyP,cAAc;QAAAC;MAAA,CAAgB,GAAAnQ,OAAI,aAAc;QACpD,IAAIoQ,QAAA,KAAa;QACf,IAAAC,aAAO;QAAA,IACLC,YAAY,GAAExC,KAAM,CAAA/G,WAAmB;QAAY,KACnD,IAAAwI,IAAA,IAAA9N,KAAkB;UACpB,IAAA8O,QAAA,GAAA9O,KAAA,CAAA8N,IAAA;UACF,IAAAtN,KAAA,GAAAC,mBAAA,CAAAqO,QAAA,EAAApO,MAAA;UAEA,IAAAF,KAAO;UACL,IAAA6M,gBAAM;YACNuB,aAAA,CAAAd,IAAA,IAAAhN,mBAAA,CAAAN,KAAA;YACA;UACA;UACF,IAAA6E,kBAAA,CAAAyI,IAAA,EAAAtN,KAAA,EAAAqO,YAAA;YACEF,QAAA,CAAAb,IAAa,IAAMhN,mBAAY,CAAAN,KAAA;UAInC,OAAM;YACJoO,aAAA,CAAAd,IAAA,IAAAhN,mBAAA,CAAAN,KAAA;UACA;QACA;QACA,IAAAoM,UAAA;UACD,SAAAmC,IAAA,IAAAJ,QAAA;YAEDC,aAAA,CAAAG,IAAA,IAA0BJ,QAAM,CAAAI,IAAA;UAC9B;QAAkB;QAChB,OACA;UACAN,cAAA,EAAAE,QAAA;UACAD,YAAA,EAAAE;QACF;MACF,GAAG,CAMHvB,gBAAkB,EAChBrN,KAAA,EACAU,MAAM,EACNkM,UAAM,EACNP,KAAA,CAAM/G,WAAA,CAIN;MACA;QAAAmE,UAAQ;QAAAhB;MAAqB,IAAAlK,OAAA,aAAiB;QAC5C,IACEoO,WAAA;UACA;YACAlD,UAAA;cACA3H,IAAA,UAAa;cACfuG,QAAA;YAGF;YACEI,eAAY;UACZ;QAAiB;QACiB,OAClCb,qBAAuB,CAAAyE,KAAM,CAAAxE,UAAA,EAAAC,UAAA,EAAAC,cAAA,EAAA2B,YAAA,CAAA+E,cAAA;MAAA,GAC/B,CAEA9B,WAAW,EACTN,KAAA,CAAAxE,UAAM,EACN4G,cAAM,EAEN1G,cAAI,CAEJ;MACE,IAAAiH,SAAA,GAAQhQ,cAAO;QACfyK,UAAA;QAAAhB,eACF;QAEA4E,gBAAY;QACVV;MACE;MACE3O,yBAAa,aAAa;QAC1BgR,SAAA,CAAAxO,KAAM;UACNiJ,UAAI;UACFhB,eAAA;UAAiE4E,gBACnE;UAAAV;QACF;MAEF,IAAAlD,UACF,EAEAhB,eAAI,EACF4E,gBAAY,EAA6BV,WACpC,CACL;MAAwCH,eAC1C,aAAAA,eAAA,uBAAAA,eAAA,WAAAyC,SAAA,EAAAC,oBAAA;QACF,IAAAL,YAAA,GAAAxC,KAAA,CAAA/G,WAAA;QAGA,IAAAqJ,QAAA;QACA,IAAAQ,OAAA;QACA,IAAAC,WAAA,KAAoB;QAEpB,IACEC,eAAY,GAAAH,oBAAa,KACzB,QAAMA,oBACA,KAAU,SAChBA,oBAAA,GAAA7C,KAAA,CAAAxE,UAAA;QACA;UAAA4B,UAAa,EAAA6F,OAAA;UAAA7G,eAAA,EAAA8G;QAAA,IAAkD3H,qBAAA,CAAAyH,eAAA,EAAAvH,UAAA,EAAAC,cAAA,EAAA2B,YAAA,CAAAuF,SAAA;QAAAD,SAC7D,CAAAxO,KAAA;UAAAiJ,UACA,EAAA6F,OAAA;UAAA7G,eACA,EAAA8G,kBAAA;UACFlC,gBAAC,EAAA2B,SAAA,CAAAxO,KAAA,CAAA6M,gBAAA;UACHV,WAAA,EAAAqC,SAAA,CAAAxO,KAAA,CAAAmM;QACD;QAID,KAAM,IAAAmB,IAAA,IAAAmB,SAAqB;UACvB,IAAAH,QAAA,GAAAG,SAAsB,CAAAnB,IAAA;UACxB,IAAMtN,KAAA,GAAAC,mBAAsB,CAAAqO,QAAA,EAAApO,MAAA;UAC5B,IAAMF,KAAA,SAAc;UAGpB,IAAAwO,SAAW,CAAAxO,KAAO,CAAA6M,gBAAgB;YAChC8B,OAAI,CAAArB,IAAQ,IAAAhN,mBAAa,CAAAN,KAAA;YACzB;UACE;UACF,IAAAsN,IAAA,oBAAA/M,KAAA,CAAAC,OAAA,CAAAR,KAAA;YACF,IAAAgP,0BAAA;cAAAC,kBAAA;cAAAC,eAAA;YAGA,IAAM;cACF,SAAAC,UAAoB,GAAAnP,KAAQ,CAAAlB,MAAA,CAAAwJ,QAAa,KAAA8G,MAAA,IAAAJ,0BAAA,IAAAI,MAAA,GAAAD,UAAA,CAAAzO,IAAA,IAAA8H,IAAA,GAAAwG,0BAAA;gBAC3C,IAAAK,EAAW,GAAAD,MAAK,CAAApP,KAAA;gBACV,IAAIqP,EAAA,YAAAA,EAAA,iCAAAzQ,QAAA,CAAAyQ,EAAA;kBACF,IAAAC,KAAO,GAAA1P,MAAO,CAAKuJ,IAAI,CAAAkG,EAAA;kBACzB,IAAME,IAAA,GAAAF,EAAA,CAAAC,KAAA;kBAEJ,WAAAC,IAAe,KAAC,QAAY,WAASA,IAAI,KAAG;oBAC9CX,WAAA,CAAAY,IAAA,CAAAlP,mBAAA,CAAA+O,EAAA;kBACF;gBACA;cACF;YACF,SAAAtG,GAAA;cACFkG,kBAAA;cAGAC,eAAmB,GAAAnG,GAAA;YACnB;cACF;gBAGM,KAAAiG,0BAAgB,IAAAG,UAAA,CAAAnG,MAAA;kBACfmG,UAAA,CAAAnG,MAAsB,CAAC;gBAGvB;cACC,CAAC;gBACH,IAAAiG,kBAAiB,EAAU;kBAC3B,MAAAC,eAAiB;gBACnB;cACF;YACE;YAGE;UACJ;UACE,IAAArK,kBAAA,CAAAyI,IAAA,EAAAtN,KAAA,EAAAqO,YAAA;YAEAF,QAAI,CAAAb,IAAA,IAAAhN,mBAAiC,CAAAN,KAAA;UACnC;YACF2O,OAAA,CAAArB,IAAA,IAAAhN,mBAAA,CAAAN,KAAA;UAEA;QACA;QAGA8N,kBAAM,CAAA9N,KAAA,GAAkBmO,QAAA;QACxBJ,gBAAM,CAAA/N,KAAA,GAAgB2O,OAAA;QACtBX,mBAAM,CAAAhO,KAAA,GAAoB4O,WAAA;QAC1B,IAAAnP,OAAM,CAAAC,GAAA,CAAAC,QAAA,KAAoB,iBAAAkM,KAAoB,CAAA4D,KAAA,IAAA5D,KAAA,CAAA4D,KAAA;UAG9CC,OAAM,CAAAC,IAAA,iDAAwD;YAC9DxB,QAAM;YAGNQ,OAAM;YACNiB,UAAM,EAAAhB;UAGN;QACE;MAA8B;MAIhC,IAAAiB,kBAAkB,GAAA7R,MAAA,OAAgB;MAChC,IAAAmP,kBAAY,IAAAL,gBAAa;QAEzB,IAAAgD,QAAM;QACN,IAAAhL,WAAM,GAAA+G,KAAa,CAAA/G,WAAO;QAG1B,SAAIiL,IAAA,IAAA9B,cAAA;UACJ,IAAA8B,IAAI,gBAAkB;UACpB,IAAAlL,kBAAM,CAAAkL,IAAc,EAAA9B,cAAA,CAAA8B,IAAA,GAAAjL,WAAA;YACpBgL,QAAM,CAAAN,IAAA,CAAAO,IAAA;UACN;QACE;QACA,IAAAH,UAAA,GAAQ3B,cAAe,CAAAzM,SAAE;QAA+C,IAAAoO,UAC1E,IAAArP,KAAA,CAAAC,OAAA,CAAAoP,UAAA;UAAA,IACF1H,yBAAA;YAAAC,iBAAA;YAAAC,cAAA;UAEA;YACF,SAAAC,SAAA,GAAAuH,UAAA,CAAA9Q,MAAA,CAAAwJ,QAAA,KAAAC,KAAA,IAAAL,yBAAA,IAAAK,KAAA,GAAAF,SAAA,CAAA3H,IAAA,IAAA8H,IAAA,GAAAN,yBAAA;cAGA,IAAMmB,CAAA,GAAAd,KAAA,CAAAvI,KAAa;cAKf,KAAAqJ,CAAA;cACF,IAAM2G,IAAA,GAAApQ,MAAA,CAAAuJ,IAA6C,CAACE,CAAA;cAEpD,IAAA2G,IAAA,EAAW;gBACT,IAAKlL,WAAG,KAAAA,WAAA,CAAAE,QAAA,CAAAgL,IAAA;kBACR;gBACA;gBACAF,QAAM,CAAAN,IAAQ,CAAE,aAAOQ,IAAA;cACvB;YACE;UACA,SAAAjH,GAAM;YACNZ,iBAAM,OACJ;YAGFC,cAAI,GAAAW,GAAA;UACJ,UAAI;YACF;cACA,KAAAb,yBAAwB,IAAAG,SAAA,CAAAW,MAAA;gBACxBX,SAAA,CAAAW,MAAY;cACV;YACA;cAAuB,IAAAb,iBACrB;gBAAA,MACAC,cAAA;cAAA;YACY;UACd;QACF;QAGF4E,kBAAA,CAAAhH,OAAgB,GAAK,IAAAoD,GAAA,CAAA0G,QAAA;QAAAD,kBAClB,CAAA7J,OAAe,GAAA8J,QAAA,CAAAzF,MAAA;MAAA;MACdxM,KAAA,CAAA4O,SACA;QAAA,KAAAU,kBACA,KAAAL,gBAAA;QAAA,KAAA+C,kBACF,CAAA7J,OAAA,IAAAgH,kBAAA,CAAAhH,OAAA,CAAA0H,IAAA;UAAA,KAAAT,gBACD,CAAAjH,OAAA;YAAAiH,gBACH,CAAAjH,OAAA;YACF8G,gBAAA;UAEA;QACE;MAAmB,IACrBK,kBACF,EAEAL,gBAAO,EACT;MAAA,IACA1B,aACI,GAAA9M,gBAAA;QAAA,SACE;;QAAA,IACA2R,KAAA,YAAAA,CAAAC,KAAA;UACA,IAAAA,KAAA;UACA,IAAAjP,WAAA,GAAAkP,cAAA,CAAAD,KAAA;UACA,IAAAE,2BAAA;UAAA,IAAAC,UAAA,IAAAD,2BAAA,GAAAvP,MAAA,CAAAoH,eAAA,CAAAiI,KAAA,eAAAE,2BAAA,cAAAA,2BAAA,GAAAvP,MAAA,CAAAoI,UAAA;UAEA,IAAA/H,QAAA;UACA,IAAAoP,gBAAA;YACA,IAAAC,WAAA,GAAAL,KAAA;YACA,IAAAM,eAAA,GAAAC,cAAA;YACAvP,QAAA,YAAAA,CAAAsM,QAAA;cACA;;cAEFrP,OAAA,CAAAkP,eAAA,EAAAkD,WAAA,EAAAC,eAAA,EAAAhD,QAAA,aAAAA,QAAA,cAAAA,QAAA;YACN;UAEA;UAIEpH,MAAA,CAAA8J,KAAY,IAAAlP,cAAa,CAAAC,WACzB,EAAAoP,UAAM,EAAAnP,QACA;QAEN;QAAsD,IACpD2L,gBAAA,IAAAV,WAAA;UACA;QAAA;QACA,IACA/F,MAAA;QAAA,IACAvF,MAAA,GAAA2N,SAAA,CAAAxO,KAAA;QAAA,IACA0Q,eAAA,GAAA5C,kBAAA,CAAA9N,KAAA;QAAA,IACA2Q,aAAA,GAAA5C,gBAAA,CAAA/N,KAAA;QACF,IAAC4Q,iBAAA,GAAA5C,mBAAA,CAAAhO,KAAA;QACH,IAAA6Q,iBAAA,GAAAH,eAAA;QAEA,IAAAP,cAAO,GAAAU,iBAAA,GAAAH,eAAA,GAAAzC,cAAA;QACL,IAAA6C,YAAQ,GAAAD,iBAA2B,GAAAF,aAAA;QACrC,IAAAL,gBAAA,GAAA3C,YAAA,CAAA3N,KAAA;QACF,IAAAyQ,cAAA,GAAA7C,iBAAA,CAAA5N,KAAA;QACF,SAAAsN,IAAA,IAAAwD,YAAA;UACF1K,MAAA,CAAAkH,IAAA,IAAAwD,YAAA,CAAAxD,IAAA","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["jsx","_jsx","getEffectiveAnimation","normalizeTransition","getSplitStyles","hooks","isWeb","Text","useComposedRefs","useEvent","useIsomorphicLayoutEffect","useThemeWithState","View","ResetPresence","usePresence","React","forwardRef","useMemo","useRef","Animated_","cancelAnimation","runOnJS","runOnUI","useAnimatedReaction","useAnimatedStyle","useDerivedValue","useSharedValue","withDelay","withSpring","withTiming","_type_of","obj","Symbol","constructor","getDefaultExport","module","mod","__esModule","toStringTag","default","Animated","silenceAnimatedComponentDevCheck","style","process","env","NODE_ENV","Object","defineProperty","configurable","enumerable","value","resolveDynamicValue","isDark","dynamic","dark","light","cloneAnimationValue","Array","isArray","map","next","key","cloneTransitionConfig","config","createReanimatedConfig","source","applyAnimation","targetValue","callback","delay","reanimatedConfig","animatedValue","type","ANIMATABLE_PROPERTIES","transform","opacity","height","width","minWidth","minHeight","maxWidth","maxHeight","backgroundColor","borderColor","borderLeftColor","borderRightColor","borderTopColor","borderBottomColor","borderRadius","borderTopLeftRadius","borderTopRightRadius","borderBottomLeftRadius","borderBottomRightRadius","borderWidth","borderLeftWidth","borderRightWidth","borderTopWidth","borderBottomWidth","color","fontSize","fontWeight","lineHeight","letterSpacing","left","right","top","bottom","margin","marginTop","marginBottom","marginLeft","marginRight","marginHorizontal","marginVertical","padding","paddingTop","paddingBottom","paddingLeft","paddingRight","paddingHorizontal","paddingVertical","gap","rowGap","columnGap","flex","flexGrow","flexShrink","canAnimateProperty","animateOnly","startsWith","includes","createWebAnimatedComponent","defaultTag","isText","Component","createAnimatedComponent","propsIn","ref","_hooks_usePropsTransform","forwardedRef","render","rest","hostRef","composedRefs","stateRef","host","current","themeState","_themeState_theme","_themeState_name","result","staticConfig","theme","name","unmounted","isAnimated","noClass","_result_viewProps","viewProps","Element","transformedProps","usePropsTransform","call","acceptRenderProp","AnimatedView","AnimatedText","buildTransitionConfig","transition","animations","animationState","styleKeys","normalized","effectiveKey","_animations_effectiveKey","base","duration","damping","stiffness","mass","propertyConfigs","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_iterator","iterator","_step","done","propAnimation","properties","_animations_propAnimation","configType","_animations_configType","baseForProp","err","return","baseConfig","getStyleKeys","keys","Set","t","add","createAnimations","animationsConfig","needsCustomComponent","isReactNative","inputStyle","outputStyle","avoidReRenders","useAnimatedNumber","initial","sharedValue","getInstance","getValue","setValue","arguments","length","onFinish","cb","animationConfig","animationConfig2","stop","useAnimatedNumberReaction","param","onValue","instance","prev","useAnimatedNumberStyle","val","getStyle","styleVal","animatedStyle","useAnimatedNumbersStyle","vals","instances","v","currentValues","inst","useAnimations","animationProps","props","presence","componentState","useStyleEmitter","themeName","styleState","isHydrating","isMounting","isEntering","isExiting","wasEnteringRef","justFinishedEntering","useEffect","_styleState_effectiveTransition","effectiveTransition","animationKey","disableAnimation","sendExitComplete","exitCycleIdRef","pendingExitKeysRef","exitCompletedRef","wasExitingRef","justStartedExiting","justStoppedExiting","markExitKeyDone","key3","cycleId","finished","delete","size","isExitingRef","exitCycleIdShared","clear","animatedTargetsRef","staticTargetsRef","transformTargetsRef","animatedStyles","staticStyles","animated","staticStyles2","animateOnly2","rawValue","key1","pseudoActiveRef","isExitingJSRef","configRef","nextStyle","effectiveTransition2","pseudoActive","statics","transforms2","transitionToUse","newBase","newPropertyConfigs","_iteratorNormalCompletion2","_didIteratorError2","_iteratorError2","_iterator2","_step2","t2","tKey2","tVal","push","debug","console","info","transforms","exitKeysRegistered","exitKeys","key2","tKey","_loop","key12","animatedValues","_config_propertyConfigs_key","propConfig","currentlyExiting","capturedKey","capturedCycleId","currentCycleId","emitterAnimated","emitterStatic","emitterTransforms","hasEmitterUpdates","staticValues"],"sources":["../../src/createAnimations.tsx"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tamagui/animations-reanimated",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.3.1",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"source": "src/index.ts",
|
|
6
6
|
"files": [
|
|
@@ -34,12 +34,12 @@
|
|
|
34
34
|
"clean:build": "tamagui-build clean:build"
|
|
35
35
|
},
|
|
36
36
|
"dependencies": {
|
|
37
|
-
"@tamagui/animation-helpers": "2.
|
|
38
|
-
"@tamagui/core": "2.
|
|
39
|
-
"@tamagui/use-presence": "2.
|
|
37
|
+
"@tamagui/animation-helpers": "2.3.1",
|
|
38
|
+
"@tamagui/core": "2.3.1",
|
|
39
|
+
"@tamagui/use-presence": "2.3.1"
|
|
40
40
|
},
|
|
41
41
|
"devDependencies": {
|
|
42
|
-
"@tamagui/build": "2.
|
|
42
|
+
"@tamagui/build": "2.3.1",
|
|
43
43
|
"react": ">=19",
|
|
44
44
|
"react-native": "0.83.2",
|
|
45
45
|
"react-native-reanimated": "~4.2.2"
|
package/src/createAnimations.tsx
CHANGED
|
@@ -730,6 +730,48 @@ export function createAnimations<A extends Record<string, TransitionConfig>>(
|
|
|
730
730
|
return { animatedStyles: animated, staticStyles }
|
|
731
731
|
}, [disableAnimation, style, isDark, isMounting, props.animateOnly])
|
|
732
732
|
|
|
733
|
+
// reconcile the emitter latch with real re-renders.
|
|
734
|
+
//
|
|
735
|
+
// the avoidReRenders fast path lets a pure pseudo change (hover/press/focus) push
|
|
736
|
+
// styles straight to the worklet via useStyleEmitter with no React commit — it sets
|
|
737
|
+
// animatedTargetsRef. the worklet then treats `animatedTargetsRef !== null` as a
|
|
738
|
+
// permanent latch: once the emitter has fired even once, it reads its last-emitted
|
|
739
|
+
// snapshot and IGNORES `animatedStyles` from every subsequent re-render. so a base
|
|
740
|
+
// style that changes through React (e.g. a row's `backgroundColor` flipping with an
|
|
741
|
+
// external selection store, not a hover) never reaches the screen — it stays stuck on
|
|
742
|
+
// the stale emitted value until the next hover re-fires the emitter. (the "active row
|
|
743
|
+
// highlight gets stuck until you hover it again" report.)
|
|
744
|
+
//
|
|
745
|
+
// a real re-render is the freshest source of truth for the base style, so on render we
|
|
746
|
+
// drop the emitter latch and let the worklet fall back to `animatedStyles`. the one
|
|
747
|
+
// exception: while a self pseudo (hover/press/focus) is active the emitted style is a
|
|
748
|
+
// transient override that isn't in this render, so keep it latched — otherwise an
|
|
749
|
+
// unrelated re-render while hovering would snap back to the base. `pseudoActiveRef`
|
|
750
|
+
// tracks that flag straight off the emitter (which fires on every pseudo transition), so
|
|
751
|
+
// the un-hover/un-press emission flips it false and the next render reclaims the style.
|
|
752
|
+
// no value comparison needed; runtime media stays correct because a render re-reads live
|
|
753
|
+
// media into `animatedStyles`.
|
|
754
|
+
// exit overrides the pseudo exception: the exit render's style IS the
|
|
755
|
+
// authoritative target, and an element that exits while hovered/focused (every
|
|
756
|
+
// dialog closed by clicking a button inside it) would otherwise keep the stale
|
|
757
|
+
// emitted base latched — the worklet then "animates" to values already on
|
|
758
|
+
// screen, every exit-key callback completes in a frame, and AnimatePresence
|
|
759
|
+
// unmounts immediately (the dialog-exit-snap). mirrored into a plain ref so the
|
|
760
|
+
// emitter callback (which runs outside render) can read it.
|
|
761
|
+
const pseudoActiveRef = useRef(false)
|
|
762
|
+
const isExitingJSRef = useRef(false)
|
|
763
|
+
isExitingJSRef.current = isExiting
|
|
764
|
+
useIsomorphicLayoutEffect(() => {
|
|
765
|
+
if (
|
|
766
|
+
(isExiting || !pseudoActiveRef.current) &&
|
|
767
|
+
animatedTargetsRef.value !== null
|
|
768
|
+
) {
|
|
769
|
+
animatedTargetsRef.value = null
|
|
770
|
+
staticTargetsRef.value = null
|
|
771
|
+
transformTargetsRef.value = null
|
|
772
|
+
}
|
|
773
|
+
})
|
|
774
|
+
|
|
733
775
|
// Build animation config with per-property overrides using normalized transition
|
|
734
776
|
const { baseConfig, propertyConfigs } = useMemo(() => {
|
|
735
777
|
if (isHydrating) {
|
|
@@ -739,13 +781,18 @@ export function createAnimations<A extends Record<string, TransitionConfig>>(
|
|
|
739
781
|
}
|
|
740
782
|
}
|
|
741
783
|
|
|
784
|
+
// use effectiveTransition (createComponent's single source of truth) so a
|
|
785
|
+
// platform-pseudo component with no declared transition resolves its BASE
|
|
786
|
+
// config to instant ('0ms') too — not just its pseudo flips. otherwise base
|
|
787
|
+
// style changes on the driver path animate with the default spring and a
|
|
788
|
+
// hover-out / base color change visibly lingers (looks "stuck").
|
|
742
789
|
return buildTransitionConfig(
|
|
743
|
-
|
|
790
|
+
effectiveTransition,
|
|
744
791
|
animations,
|
|
745
792
|
animationState,
|
|
746
793
|
getStyleKeys(animatedStyles)
|
|
747
794
|
)
|
|
748
|
-
}, [isHydrating,
|
|
795
|
+
}, [isHydrating, effectiveTransition, animatedStyles, animationState])
|
|
749
796
|
|
|
750
797
|
// Store config in SharedValue for worklet access (concurrent-safe)
|
|
751
798
|
// Using useEffect to avoid writing to shared value during render
|
|
@@ -769,79 +816,88 @@ export function createAnimations<A extends Record<string, TransitionConfig>>(
|
|
|
769
816
|
// avoidRerenders: register style emitter callback
|
|
770
817
|
// when hover/press/etc state changes, this is called instead of re-rendering
|
|
771
818
|
// =========================================================================
|
|
772
|
-
useStyleEmitter?.(
|
|
773
|
-
|
|
774
|
-
|
|
775
|
-
|
|
776
|
-
|
|
777
|
-
|
|
778
|
-
|
|
779
|
-
|
|
780
|
-
|
|
781
|
-
|
|
782
|
-
|
|
783
|
-
|
|
784
|
-
|
|
785
|
-
|
|
786
|
-
|
|
787
|
-
)
|
|
788
|
-
|
|
789
|
-
|
|
790
|
-
|
|
791
|
-
|
|
792
|
-
|
|
793
|
-
|
|
794
|
-
|
|
795
|
-
|
|
819
|
+
useStyleEmitter?.(
|
|
820
|
+
(nextStyle: Record<string, unknown>, effectiveTransition, pseudoActive) => {
|
|
821
|
+
// while exiting, the exit render owns the style — a pseudo flip mid-exit
|
|
822
|
+
// (hover-out as the element fades under the cursor) must not re-latch the
|
|
823
|
+
// base style over the in-flight exit targets.
|
|
824
|
+
if (isExitingJSRef.current) return
|
|
825
|
+
// track whether a self pseudo is active so the render-time layout effect knows whether
|
|
826
|
+
// this emitter snapshot is a transient override to keep latched or a base it can drop.
|
|
827
|
+
pseudoActiveRef.current = pseudoActive === true
|
|
828
|
+
const animateOnly = props.animateOnly as string[] | undefined
|
|
829
|
+
const animated: Record<string, unknown> = {}
|
|
830
|
+
const statics: Record<string, unknown> = {}
|
|
831
|
+
const transforms: Array<Record<string, unknown>> = []
|
|
832
|
+
|
|
833
|
+
// effectiveTransition is computed in createComponent based on entering/exiting pseudo states
|
|
834
|
+
// rebuild config whenever transition changes (entering OR exiting pseudo states)
|
|
835
|
+
const transitionToUse = effectiveTransition ?? props.transition
|
|
836
|
+
const { baseConfig: newBase, propertyConfigs: newPropertyConfigs } =
|
|
837
|
+
buildTransitionConfig(
|
|
838
|
+
transitionToUse,
|
|
839
|
+
animations,
|
|
840
|
+
animationState,
|
|
841
|
+
getStyleKeys(nextStyle)
|
|
842
|
+
)
|
|
843
|
+
|
|
844
|
+
// update configRef with the new config
|
|
845
|
+
configRef.value = {
|
|
846
|
+
baseConfig: newBase,
|
|
847
|
+
propertyConfigs: newPropertyConfigs,
|
|
848
|
+
disableAnimation: configRef.value.disableAnimation,
|
|
849
|
+
isHydrating: configRef.value.isHydrating,
|
|
850
|
+
}
|
|
796
851
|
|
|
797
|
-
|
|
798
|
-
|
|
799
|
-
|
|
852
|
+
for (const key in nextStyle) {
|
|
853
|
+
const rawValue = nextStyle[key]
|
|
854
|
+
const value = resolveDynamicValue(rawValue, isDark)
|
|
800
855
|
|
|
801
|
-
|
|
856
|
+
if (value == undefined) continue
|
|
802
857
|
|
|
803
|
-
|
|
804
|
-
|
|
805
|
-
|
|
806
|
-
|
|
858
|
+
if (configRef.value.disableAnimation) {
|
|
859
|
+
statics[key] = cloneAnimationValue(value)
|
|
860
|
+
continue
|
|
861
|
+
}
|
|
807
862
|
|
|
808
|
-
|
|
809
|
-
|
|
810
|
-
|
|
811
|
-
|
|
812
|
-
|
|
813
|
-
|
|
814
|
-
|
|
863
|
+
if (key === 'transform' && Array.isArray(value)) {
|
|
864
|
+
for (const t of value as Record<string, unknown>[]) {
|
|
865
|
+
if (t && typeof t === 'object') {
|
|
866
|
+
const tKey = Object.keys(t)[0]
|
|
867
|
+
const tVal = t[tKey]
|
|
868
|
+
if (typeof tVal === 'number' || typeof tVal === 'string') {
|
|
869
|
+
transforms.push(cloneAnimationValue(t) as Record<string, unknown>)
|
|
870
|
+
}
|
|
815
871
|
}
|
|
816
872
|
}
|
|
873
|
+
continue
|
|
817
874
|
}
|
|
818
|
-
continue
|
|
819
|
-
}
|
|
820
875
|
|
|
821
|
-
|
|
822
|
-
|
|
823
|
-
|
|
824
|
-
|
|
876
|
+
if (canAnimateProperty(key, value, animateOnly)) {
|
|
877
|
+
animated[key] = cloneAnimationValue(value)
|
|
878
|
+
} else {
|
|
879
|
+
statics[key] = cloneAnimationValue(value)
|
|
880
|
+
}
|
|
825
881
|
}
|
|
826
|
-
}
|
|
827
|
-
|
|
828
|
-
// update shared values - on web, the mapper watches these if passed in dependencies
|
|
829
|
-
animatedTargetsRef.value = animated
|
|
830
|
-
staticTargetsRef.value = statics
|
|
831
|
-
transformTargetsRef.value = transforms
|
|
832
882
|
|
|
833
|
-
|
|
834
|
-
|
|
835
|
-
|
|
836
|
-
|
|
837
|
-
|
|
838
|
-
|
|
839
|
-
|
|
840
|
-
|
|
841
|
-
|
|
842
|
-
|
|
883
|
+
// update shared values - on web, the mapper watches these if passed in dependencies
|
|
884
|
+
animatedTargetsRef.value = animated
|
|
885
|
+
staticTargetsRef.value = statics
|
|
886
|
+
transformTargetsRef.value = transforms
|
|
887
|
+
|
|
888
|
+
if (
|
|
889
|
+
process.env.NODE_ENV === 'development' &&
|
|
890
|
+
props.debug &&
|
|
891
|
+
props.debug !== 'profile'
|
|
892
|
+
) {
|
|
893
|
+
console.info('[animations-reanimated] useStyleEmitter update', {
|
|
894
|
+
animated,
|
|
895
|
+
statics,
|
|
896
|
+
transforms,
|
|
897
|
+
})
|
|
898
|
+
}
|
|
843
899
|
}
|
|
844
|
-
|
|
900
|
+
)
|
|
845
901
|
|
|
846
902
|
// Compute and register exit keys synchronously during render to avoid race conditions
|
|
847
903
|
// This must happen BEFORE useAnimatedStyle runs so callbacks have a populated set
|
|
@@ -910,9 +966,14 @@ export function createAnimations<A extends Record<string, TransitionConfig>>(
|
|
|
910
966
|
const emitterTransforms = transformTargetsRef.value
|
|
911
967
|
const hasEmitterUpdates = emitterAnimated !== null
|
|
912
968
|
|
|
913
|
-
// Use emitter values if available, otherwise use React state values
|
|
969
|
+
// Use emitter values if available, otherwise use React state values.
|
|
970
|
+
// statics must fall back to the render's staticStyles (not {}): once an
|
|
971
|
+
// emitter snapshot has applied static keys, reanimated never unsets
|
|
972
|
+
// them, so after the latch drops a stale emitted value (e.g. a border
|
|
973
|
+
// color that missed animateOnly) would keep painting over the fresh
|
|
974
|
+
// style prop forever
|
|
914
975
|
const animatedValues = hasEmitterUpdates ? emitterAnimated! : animatedStyles
|
|
915
|
-
const staticValues = hasEmitterUpdates ? emitterStatic! :
|
|
976
|
+
const staticValues = hasEmitterUpdates ? emitterStatic! : staticStyles
|
|
916
977
|
|
|
917
978
|
// read exit state from shared values
|
|
918
979
|
const currentlyExiting = isExitingRef.value
|
|
@@ -999,6 +1060,7 @@ export function createAnimations<A extends Record<string, TransitionConfig>>(
|
|
|
999
1060
|
isWeb
|
|
1000
1061
|
? [
|
|
1001
1062
|
animatedStyles,
|
|
1063
|
+
staticStyles,
|
|
1002
1064
|
baseConfig,
|
|
1003
1065
|
propertyConfigs,
|
|
1004
1066
|
disableAnimation,
|
|
@@ -6,6 +6,6 @@
|
|
|
6
6
|
],
|
|
7
7
|
"version": 3,
|
|
8
8
|
"sourcesContent": [
|
|
9
|
-
"import { getEffectiveAnimation, normalizeTransition } from '@tamagui/animation-helpers'\nimport {\n getSplitStyles,\n hooks,\n isWeb,\n Text,\n useComposedRefs,\n useEvent,\n useIsomorphicLayoutEffect,\n useThemeWithState,\n View,\n type AnimationDriver,\n type UniversalAnimatedNumber,\n} from '@tamagui/core'\nimport { ResetPresence, usePresence } from '@tamagui/use-presence'\nimport React, { forwardRef, useMemo, useRef } from 'react'\nimport type { SharedValue } from 'react-native-reanimated'\nimport Animated_, {\n cancelAnimation,\n runOnJS,\n runOnUI,\n useAnimatedReaction,\n useAnimatedStyle,\n useDerivedValue,\n useSharedValue,\n withDelay,\n withSpring,\n withTiming,\n type WithSpringConfig,\n type WithTimingConfig,\n} from 'react-native-reanimated'\n\n// =============================================================================\n// ESM/CJS compatibility\n// =============================================================================\n\n/**\n * Handle ESM/CJS module interop for react-native-reanimated\n * @see https://github.com/evanw/esbuild/issues/2480#issuecomment-1833104754\n */\nconst getDefaultExport = <T,>(module: T | { default: T }): T => {\n const mod = module as any\n if (mod.__esModule || mod[Symbol.toStringTag] === 'Module') {\n return mod.default || mod\n }\n return mod\n}\n\nconst Animated = getDefaultExport(Animated_)\n\nconst silenceAnimatedComponentDevCheck = (style: unknown) => {\n if (\n process.env.NODE_ENV !== 'development' ||\n isWeb ||\n !style ||\n typeof style !== 'object'\n ) {\n return\n }\n\n // react fabric's dev performance logger diffs component props and reads the\n // reanimated guard getter even when the style is on an animated component.\n Object.defineProperty(style, '_requiresAnimatedComponent', {\n configurable: true,\n enumerable: false,\n value: true,\n })\n}\n\n// =============================================================================\n// Types\n// =============================================================================\n\ntype ReanimatedAnimatedNumber = SharedValue<number>\n\n/** Spring animation configuration */\ntype SpringConfig = {\n type?: 'spring'\n delay?: number\n} & Partial<WithSpringConfig>\n\n/** Timing animation configuration */\ntype TimingConfig = {\n type: 'timing'\n delay?: number\n} & Partial<WithTimingConfig>\n\n/** Combined animation configuration type */\nexport type TransitionConfig = SpringConfig | TimingConfig\n\n/** Options for createAnimations (reserved for future use) */\nexport type CreateAnimationsOptions = {}\n\n// =============================================================================\n// Utility Functions\n// =============================================================================\n\n/**\n * Resolve dynamic theme values (e.g., `{dynamic: {dark: \"value\", light: \"value\"}}`)\n */\nconst resolveDynamicValue = (value: unknown, isDark: boolean): unknown => {\n if (\n value !== null &&\n typeof value === 'object' &&\n 'dynamic' in value &&\n typeof (value as any).dynamic === 'object'\n ) {\n const dynamic = (value as any).dynamic\n return isDark ? dynamic.dark : dynamic.light\n }\n return value\n}\n\n/** Animation completion callback type */\ntype AnimationCallback = (finished?: boolean) => void\n\nconst cloneAnimationValue = (value: unknown): unknown => {\n if (Array.isArray(value)) {\n return value.map(cloneAnimationValue)\n }\n\n if (value && typeof value === 'object') {\n const next: Record<string, unknown> = {}\n for (const key in value as Record<string, unknown>) {\n next[key] = cloneAnimationValue((value as Record<string, unknown>)[key])\n }\n return next\n }\n\n return value\n}\n\nconst cloneTransitionConfig = (config: TransitionConfig): TransitionConfig => {\n return cloneAnimationValue(config) as TransitionConfig\n}\n\nconst createReanimatedConfig = (config: TransitionConfig): Record<string, unknown> => {\n 'worklet'\n const next: Record<string, unknown> = {}\n const source = config as Record<string, unknown>\n\n for (const key in source) {\n if (key === 'type' || key === 'delay') continue\n const value = source[key]\n if (value !== undefined) {\n next[key] = value\n }\n }\n\n return next\n}\n\n/**\n * Apply animation to a value based on config, with optional completion callback\n */\nconst applyAnimation = (\n targetValue: number | string,\n config: TransitionConfig,\n callback?: AnimationCallback\n): number | string => {\n 'worklet'\n const delay = config.delay\n const reanimatedConfig = createReanimatedConfig(config)\n\n let animatedValue: any\n if (config.type === 'timing') {\n animatedValue = withTiming(\n targetValue as number,\n reanimatedConfig as WithTimingConfig,\n callback\n )\n } else {\n animatedValue = withSpring(\n targetValue as number,\n reanimatedConfig as WithSpringConfig,\n callback\n )\n }\n\n if (delay && delay > 0) {\n animatedValue = withDelay(delay, animatedValue)\n }\n\n return animatedValue\n}\n\n// =============================================================================\n// Animatable Properties\n// =============================================================================\n\nconst ANIMATABLE_PROPERTIES: Record<string, boolean> = {\n // Transform\n transform: true,\n // Opacity\n opacity: true,\n // Dimensions\n height: true,\n width: true,\n minWidth: true,\n minHeight: true,\n maxWidth: true,\n maxHeight: true,\n // Background\n backgroundColor: true,\n // Border colors\n borderColor: true,\n borderLeftColor: true,\n borderRightColor: true,\n borderTopColor: true,\n borderBottomColor: true,\n // Border radius\n borderRadius: true,\n borderTopLeftRadius: true,\n borderTopRightRadius: true,\n borderBottomLeftRadius: true,\n borderBottomRightRadius: true,\n // Border width\n borderWidth: true,\n borderLeftWidth: true,\n borderRightWidth: true,\n borderTopWidth: true,\n borderBottomWidth: true,\n // Text\n color: true,\n fontSize: true,\n fontWeight: true,\n lineHeight: true,\n letterSpacing: true,\n // Position\n left: true,\n right: true,\n top: true,\n bottom: true,\n // Margin\n margin: true,\n marginTop: true,\n marginBottom: true,\n marginLeft: true,\n marginRight: true,\n marginHorizontal: true,\n marginVertical: true,\n // Padding\n padding: true,\n paddingTop: true,\n paddingBottom: true,\n paddingLeft: true,\n paddingRight: true,\n paddingHorizontal: true,\n paddingVertical: true,\n // Flex/Gap\n gap: true,\n rowGap: true,\n columnGap: true,\n flex: true,\n flexGrow: true,\n flexShrink: true,\n}\n\n/**\n * Check if a style property can be animated\n */\nconst canAnimateProperty = (\n key: string,\n value: unknown,\n animateOnly?: string[]\n): boolean => {\n if (!ANIMATABLE_PROPERTIES[key]) return false\n if (value === 'auto') return false\n if (typeof value === 'string' && value.startsWith('calc')) return false\n if (animateOnly && !animateOnly.includes(key)) return false\n return true\n}\n\n// =============================================================================\n// Animated Components (Web)\n// =============================================================================\n\n/**\n * Create a Tamagui-compatible animated component for web\n * Supports data- attributes, className, and proper style handling\n */\nfunction createWebAnimatedComponent(defaultTag: 'div' | 'span') {\n const isText = defaultTag === 'span'\n\n const Component = Animated.createAnimatedComponent(\n forwardRef((propsIn: any, ref) => {\n const { forwardedRef, render = defaultTag, ...rest } = propsIn\n const hostRef = useRef<HTMLElement>(null)\n const composedRefs = useComposedRefs(forwardedRef, ref, hostRef)\n\n const stateRef = useRef<{ host: HTMLElement | null }>({\n get host() {\n return hostRef.current\n },\n })\n\n const [, themeState] = useThemeWithState({})\n\n const result = getSplitStyles(\n rest,\n isText ? Text.staticConfig : View.staticConfig,\n themeState?.theme ?? {},\n themeState?.name ?? '',\n { unmounted: false } as any,\n { isAnimated: false, noClass: true }\n )\n\n const viewProps = result?.viewProps ?? {}\n const Element = render\n const transformedProps = hooks.usePropsTransform?.(\n render,\n viewProps,\n stateRef as any,\n false\n )\n\n return <Element {...transformedProps} ref={composedRefs} />\n })\n )\n ;(Component as any).acceptRenderProp = true\n return Component\n}\n\nconst AnimatedView = createWebAnimatedComponent('div')\nconst AnimatedText = createWebAnimatedComponent('span')\n\n// =============================================================================\n// Transition Config Builder\n// =============================================================================\n\ntype TransitionConfigResult = {\n baseConfig: TransitionConfig\n propertyConfigs: Record<string, TransitionConfig>\n}\n\n/**\n * Builds animation config from a transition prop.\n * Shared logic used in both initial render and style emitter updates.\n */\nfunction buildTransitionConfig<A extends Record<string, TransitionConfig>>(\n transition: any,\n animations: A,\n animationState: 'enter' | 'exit' | 'default',\n styleKeys: Set<string>\n): TransitionConfigResult {\n const normalized = normalizeTransition(transition)\n const effectiveKey = getEffectiveAnimation(normalized, animationState)\n\n let base = cloneTransitionConfig(\n effectiveKey\n ? (animations[effectiveKey as keyof typeof animations] ??\n ({ type: 'spring' } as TransitionConfig))\n : ({ type: 'spring' } as TransitionConfig)\n )\n\n if (normalized.delay) {\n base = cloneTransitionConfig({ ...base, delay: normalized.delay })\n }\n\n if (normalized.config) {\n base = cloneTransitionConfig({ ...base, ...normalized.config })\n // infer type: 'timing' if duration is provided without spring params\n if (\n base.type !== 'timing' &&\n normalized.config.duration !== undefined &&\n normalized.config.damping === undefined &&\n normalized.config.stiffness === undefined &&\n normalized.config.mass === undefined\n ) {\n base = cloneTransitionConfig({ ...base, type: 'timing' })\n }\n }\n\n // build per-property configs\n const propertyConfigs: Record<string, TransitionConfig> = {}\n\n for (const key of styleKeys) {\n const propAnimation = normalized.properties[key]\n if (typeof propAnimation === 'string') {\n propertyConfigs[key] = cloneTransitionConfig(\n animations[propAnimation as keyof typeof animations] ?? base\n )\n } else if (propAnimation && typeof propAnimation === 'object') {\n const configType = (propAnimation as any).type\n const baseForProp = configType\n ? (animations[configType as keyof typeof animations] ?? base)\n : base\n propertyConfigs[key] = cloneTransitionConfig({\n ...baseForProp,\n ...propAnimation,\n } as TransitionConfig)\n } else {\n propertyConfigs[key] = cloneTransitionConfig(base)\n }\n }\n\n return { baseConfig: base, propertyConfigs }\n}\n\n/**\n * Extracts all style keys including transform sub-properties.\n */\nfunction getStyleKeys(style: Record<string, unknown>): Set<string> {\n const keys = new Set(Object.keys(style))\n if (style.transform && Array.isArray(style.transform)) {\n for (const t of style.transform as Record<string, unknown>[]) {\n if (t && typeof t === 'object') {\n keys.add(Object.keys(t)[0])\n }\n }\n }\n return keys\n}\n\n// =============================================================================\n// Animation Driver Factory\n// =============================================================================\n\n/**\n * Create a Reanimated-based animation driver for Tamagui.\n *\n * This is a native Reanimated implementation without Moti dependency.\n * It provides smooth spring and timing animations with full support for:\n * - Per-property animation configurations\n * - Exit animations with proper completion callbacks\n * - Dynamic theme value resolution\n * - Transform property animations\n * - avoidReRenders optimization for hover/press/focus states\n *\n * @example\n * ```tsx\n * const animations = createAnimations({\n * fast: { type: 'spring', damping: 20, stiffness: 250 },\n * slow: { type: 'timing', duration: 500 },\n * })\n *\n * ```\n */\nexport function createAnimations<A extends Record<string, TransitionConfig>>(\n animationsConfig: A\n): AnimationDriver<A> {\n // Normalize animation configs - default to spring if not specified\n // This matches behavior of moti and motion drivers\n const animations = {} as A\n for (const key in animationsConfig) {\n animations[key] = cloneTransitionConfig({\n type: 'spring',\n ...animationsConfig[key],\n }) as A[typeof key]\n }\n\n return {\n needsCustomComponent: true,\n View: isWeb ? AnimatedView : Animated.View,\n Text: isWeb ? AnimatedText : Animated.Text,\n isReactNative: true,\n inputStyle: 'value',\n outputStyle: 'inline',\n avoidReRenders: true,\n animations,\n usePresence,\n ResetPresence,\n\n // =========================================================================\n // useAnimatedNumber - For imperative animated values\n // =========================================================================\n useAnimatedNumber(initial): UniversalAnimatedNumber<ReanimatedAnimatedNumber> {\n const sharedValue = useSharedValue(initial)\n\n return useMemo(\n () => ({\n getInstance() {\n 'worklet'\n return sharedValue\n },\n\n getValue() {\n 'worklet'\n return sharedValue.value\n },\n\n setValue(next, config = { type: 'spring' }, onFinish) {\n if (config.type === 'direct') {\n sharedValue.value = next\n onFinish?.()\n } else {\n // animations must start on the ui thread in reanimated 4.x -\n // withSpring/withTiming return animation descriptors that only\n // work when assigned to a SharedValue inside the UI runtime\n const cb = onFinish\n ? () => {\n 'worklet'\n runOnJS(onFinish)()\n }\n : undefined\n\n const animationConfig = cloneTransitionConfig(config)\n\n if (isWeb) {\n // on web there's no UI thread - set directly\n sharedValue.value = applyAnimation(next, animationConfig, cb)\n } else {\n runOnUI((targetValue: number, animationConfig: TransitionConfig) => {\n 'worklet'\n sharedValue.value = applyAnimation(targetValue, animationConfig, cb)\n })(next, animationConfig)\n }\n }\n },\n\n stop() {\n cancelAnimation(sharedValue)\n },\n }),\n [sharedValue]\n )\n },\n\n // =========================================================================\n // useAnimatedNumberReaction - React to animated value changes\n // =========================================================================\n useAnimatedNumberReaction({ value }, onValue) {\n const instance = value.getInstance()\n\n return useAnimatedReaction(\n () => instance.value,\n (next, prev) => {\n if (prev !== next) {\n runOnJS(onValue)(next)\n }\n },\n [onValue, instance]\n )\n },\n\n // =========================================================================\n // useAnimatedNumberStyle - Create animated styles from values\n // =========================================================================\n useAnimatedNumberStyle(val, getStyle) {\n const instance = val.getInstance()\n\n if (isWeb) {\n // web: must pass explicit deps (no babel plugin)\n return useAnimatedStyle(() => {\n 'worklet'\n return getStyle(instance.value)\n }, [instance, getStyle])\n }\n\n const styleVal = useDerivedValue(() => {\n 'worklet'\n return getStyle(instance.value)\n })\n\n const animatedStyle = useAnimatedStyle(() => {\n 'worklet'\n return styleVal.value\n })\n\n silenceAnimatedComponentDevCheck(animatedStyle)\n\n return animatedStyle\n },\n\n useAnimatedNumbersStyle(vals, getStyle) {\n const instances = vals.map((v) => v.getInstance())\n\n const animatedStyle = useAnimatedStyle(\n () => {\n 'worklet'\n const currentValues = instances.map((inst) => inst.value)\n return getStyle(...currentValues)\n },\n isWeb ? [getStyle, ...instances] : undefined\n )\n\n silenceAnimatedComponentDevCheck(animatedStyle)\n\n return animatedStyle\n },\n\n // =========================================================================\n // useAnimations - Main animation hook for components\n // =========================================================================\n useAnimations(animationProps) {\n const {\n props,\n presence,\n style,\n componentState,\n useStyleEmitter,\n themeName,\n stateRef,\n styleState,\n } = animationProps\n\n // State flags\n const isHydrating = componentState.unmounted === true\n const isMounting = componentState.unmounted === 'should-enter'\n const isEntering = !!componentState.unmounted\n\n // Presence state for exit animations\n const isExiting = presence?.[0] === false\n\n // Track if we just finished entering (transition from entering to not entering)\n const wasEnteringRef = useRef(isEntering)\n const justFinishedEntering = wasEnteringRef.current && !isEntering\n React.useEffect(() => {\n wasEnteringRef.current = isEntering\n })\n\n // Use effectiveTransition computed by createComponent (single source of truth)\n const effectiveTransition = styleState?.effectiveTransition ?? props.transition\n const normalized = normalizeTransition(effectiveTransition)\n // Use 'enter' if we're mounting OR if we just finished entering\n const animationState: 'enter' | 'exit' | 'default' = isExiting\n ? 'exit'\n : isMounting || justFinishedEntering\n ? 'enter'\n : 'default'\n const animationKey = getEffectiveAnimation(normalized, animationState)\n\n const disableAnimation = isHydrating || !animationKey\n\n // Theme state for dynamic values - use themeName from props instead of hook\n const isDark = themeName?.startsWith('dark') || false\n\n // Get sendExitComplete callback from presence\n const sendExitComplete = presence?.[1]\n\n // =========================================================================\n // Exit cycle state for deterministic per-property completion tracking\n // =========================================================================\n const exitCycleIdRef = useRef(0)\n const pendingExitKeysRef = useRef<Set<string>>(new Set())\n const exitCompletedRef = useRef(false)\n const wasExitingRef = useRef(false)\n\n // detect transition into/out of exiting state\n const justStartedExiting = isExiting && !wasExitingRef.current\n const justStoppedExiting = !isExiting && wasExitingRef.current\n\n // stable callback to mark a property as done (called from worklet via runOnJS)\n const markExitKeyDone = useEvent(\n (key: string, cycleId: number, finished: boolean) => {\n // ignore callbacks from stale cycles\n if (cycleId !== exitCycleIdRef.current) return\n // ignore if already completed\n if (exitCompletedRef.current) return\n // count both finished and canceled animations as \"done\" during exit\n // (element is leaving anyway, canceled animations shouldn't block completion)\n\n pendingExitKeysRef.current.delete(key)\n\n // check if all exit animations are done\n if (pendingExitKeysRef.current.size === 0) {\n exitCompletedRef.current = true\n sendExitComplete?.()\n }\n }\n )\n\n // SharedValue to pass exit state into worklet\n const isExitingRef = useSharedValue(isExiting)\n const exitCycleIdShared = useSharedValue(exitCycleIdRef.current)\n\n // start new exit cycle only on transition INTO exiting (not every render while exiting)\n if (justStartedExiting) {\n exitCycleIdRef.current++\n exitCompletedRef.current = false\n pendingExitKeysRef.current.clear()\n }\n // invalidate pending callbacks when exit is canceled/interrupted\n if (justStoppedExiting) {\n exitCycleIdRef.current++\n pendingExitKeysRef.current.clear()\n }\n\n // update shared values (using effect to avoid writing during render)\n useIsomorphicLayoutEffect(() => {\n isExitingRef.value = isExiting\n exitCycleIdShared.value = exitCycleIdRef.current\n }, [isExiting, exitCycleIdRef.current])\n\n // track previous exiting state\n React.useEffect(() => {\n wasExitingRef.current = isExiting\n })\n\n // =========================================================================\n // avoidRerenders: SharedValues for style updates without re-renders\n // =========================================================================\n const animatedTargetsRef = useSharedValue<Record<string, unknown> | null>(null)\n const staticTargetsRef = useSharedValue<Record<string, unknown> | null>(null)\n const transformTargetsRef = useSharedValue<Array<Record<string, unknown>> | null>(\n null\n )\n\n // Separate styles into animated and static\n const { animatedStyles, staticStyles } = useMemo(() => {\n const animated: Record<string, unknown> = {}\n const staticStyles: Record<string, unknown> = {}\n const animateOnly = props.animateOnly as string[] | undefined\n\n for (const key in style) {\n const rawValue = (style as Record<string, unknown>)[key]\n const value = resolveDynamicValue(rawValue, isDark)\n\n if (value === undefined) continue\n\n if (disableAnimation) {\n staticStyles[key] = cloneAnimationValue(value)\n continue\n }\n\n if (canAnimateProperty(key, value, animateOnly)) {\n animated[key] = cloneAnimationValue(value)\n } else {\n staticStyles[key] = cloneAnimationValue(value)\n }\n }\n\n // During mount, include animated values in static to prevent flicker\n if (isMounting) {\n for (const key in animated) {\n staticStyles[key] = animated[key]\n }\n }\n\n return { animatedStyles: animated, staticStyles }\n }, [disableAnimation, style, isDark, isMounting, props.animateOnly])\n\n // Build animation config with per-property overrides using normalized transition\n const { baseConfig, propertyConfigs } = useMemo(() => {\n if (isHydrating) {\n return {\n baseConfig: { type: 'timing' as const, duration: 0 },\n propertyConfigs: {} as Record<string, TransitionConfig>,\n }\n }\n\n return buildTransitionConfig(\n props.transition,\n animations,\n animationState,\n getStyleKeys(animatedStyles)\n )\n }, [isHydrating, props.transition, animatedStyles, animationState])\n\n // Store config in SharedValue for worklet access (concurrent-safe)\n // Using useEffect to avoid writing to shared value during render\n const configRef = useSharedValue({\n baseConfig,\n propertyConfigs,\n disableAnimation,\n isHydrating,\n })\n\n useIsomorphicLayoutEffect(() => {\n configRef.value = {\n baseConfig,\n propertyConfigs,\n disableAnimation,\n isHydrating,\n }\n }, [baseConfig, propertyConfigs, disableAnimation, isHydrating])\n\n // =========================================================================\n // avoidRerenders: register style emitter callback\n // when hover/press/etc state changes, this is called instead of re-rendering\n // =========================================================================\n useStyleEmitter?.((nextStyle: Record<string, unknown>, effectiveTransition) => {\n const animateOnly = props.animateOnly as string[] | undefined\n const animated: Record<string, unknown> = {}\n const statics: Record<string, unknown> = {}\n const transforms: Array<Record<string, unknown>> = []\n\n // effectiveTransition is computed in createComponent based on entering/exiting pseudo states\n // rebuild config whenever transition changes (entering OR exiting pseudo states)\n const transitionToUse = effectiveTransition ?? props.transition\n const { baseConfig: newBase, propertyConfigs: newPropertyConfigs } =\n buildTransitionConfig(\n transitionToUse,\n animations,\n animationState,\n getStyleKeys(nextStyle)\n )\n\n // update configRef with the new config\n configRef.value = {\n baseConfig: newBase,\n propertyConfigs: newPropertyConfigs,\n disableAnimation: configRef.value.disableAnimation,\n isHydrating: configRef.value.isHydrating,\n }\n\n for (const key in nextStyle) {\n const rawValue = nextStyle[key]\n const value = resolveDynamicValue(rawValue, isDark)\n\n if (value == undefined) continue\n\n if (configRef.value.disableAnimation) {\n statics[key] = cloneAnimationValue(value)\n continue\n }\n\n if (key === 'transform' && Array.isArray(value)) {\n for (const t of value as Record<string, unknown>[]) {\n if (t && typeof t === 'object') {\n const tKey = Object.keys(t)[0]\n const tVal = t[tKey]\n if (typeof tVal === 'number' || typeof tVal === 'string') {\n transforms.push(cloneAnimationValue(t) as Record<string, unknown>)\n }\n }\n }\n continue\n }\n\n if (canAnimateProperty(key, value, animateOnly)) {\n animated[key] = cloneAnimationValue(value)\n } else {\n statics[key] = cloneAnimationValue(value)\n }\n }\n\n // update shared values - on web, the mapper watches these if passed in dependencies\n animatedTargetsRef.value = animated\n staticTargetsRef.value = statics\n transformTargetsRef.value = transforms\n\n if (\n process.env.NODE_ENV === 'development' &&\n props.debug &&\n props.debug !== 'profile'\n ) {\n console.info('[animations-reanimated] useStyleEmitter update', {\n animated,\n statics,\n transforms,\n })\n }\n })\n\n // Compute and register exit keys synchronously during render to avoid race conditions\n // This must happen BEFORE useAnimatedStyle runs so callbacks have a populated set\n const exitKeysRegistered = useRef(false)\n if (justStartedExiting && sendExitComplete) {\n const exitKeys: string[] = []\n const animateOnly = props.animateOnly as string[] | undefined\n\n // regular animated properties\n for (const key in animatedStyles) {\n if (key === 'transform') continue\n if (canAnimateProperty(key, animatedStyles[key], animateOnly)) {\n exitKeys.push(key)\n }\n }\n\n // transform sub-keys (filter by animateOnly if specified)\n const transforms = animatedStyles.transform\n if (transforms && Array.isArray(transforms)) {\n for (const t of transforms) {\n if (!t) continue\n const tKey = Object.keys(t)[0]\n if (tKey) {\n // check animateOnly filter for transform sub-keys\n if (animateOnly && !animateOnly.includes(tKey)) {\n continue\n }\n exitKeys.push(`transform:${tKey}`)\n }\n }\n }\n\n // register keys for this cycle\n pendingExitKeysRef.current = new Set(exitKeys)\n exitKeysRegistered.current = exitKeys.length > 0\n }\n\n // handle zero-animation case in effect (after render commit)\n React.useEffect(() => {\n if (!justStartedExiting || !sendExitComplete) return\n\n // if no keys were registered, complete immediately\n if (!exitKeysRegistered.current && pendingExitKeysRef.current.size === 0) {\n if (!exitCompletedRef.current) {\n exitCompletedRef.current = true\n sendExitComplete()\n }\n }\n }, [justStartedExiting, sendExitComplete])\n\n // Create animated style\n const animatedStyle = useAnimatedStyle(\n () => {\n 'worklet'\n\n if (disableAnimation || isHydrating) {\n return {}\n }\n\n const result: Record<string, any> = {}\n const config = configRef.value\n\n // Check if we have avoidRerenders updates from useStyleEmitter\n const emitterAnimated = animatedTargetsRef.value\n const emitterStatic = staticTargetsRef.value\n const emitterTransforms = transformTargetsRef.value\n const hasEmitterUpdates = emitterAnimated !== null\n\n // Use emitter values if available, otherwise use React state values\n const animatedValues = hasEmitterUpdates ? emitterAnimated! : animatedStyles\n const staticValues = hasEmitterUpdates ? emitterStatic! : {}\n\n // read exit state from shared values\n const currentlyExiting = isExitingRef.value\n const currentCycleId = exitCycleIdShared.value\n\n // Include static values from emitter (for hover/press style changes)\n for (const key in staticValues) {\n result[key] = staticValues[key]\n }\n\n // Animate regular properties\n for (const key in animatedValues) {\n if (key === 'transform') continue\n\n const targetValue = animatedValues[key]\n const propConfig = config.propertyConfigs[key] ?? config.baseConfig\n\n // create callback for exit tracking\n let callback: AnimationCallback | undefined\n if (currentlyExiting) {\n const capturedKey = key\n const capturedCycleId = currentCycleId\n callback = (finished) => {\n 'worklet'\n runOnJS(markExitKeyDone)(capturedKey, capturedCycleId, finished ?? false)\n }\n }\n\n result[key] = applyAnimation(targetValue as number, propConfig, callback)\n }\n\n // Handle transforms\n const transforms = hasEmitterUpdates\n ? emitterTransforms\n : animatedStyles.transform\n\n // Animate transform properties with validation\n if (transforms && Array.isArray(transforms)) {\n const validTransforms: Record<string, unknown>[] = []\n\n for (const t of transforms) {\n if (!t) continue\n const keys = Object.keys(t)\n if (keys.length === 0) continue\n const value = t[keys[0]]\n if (typeof value === 'number' || typeof value === 'string') {\n const transformKey = Object.keys(t)[0]\n const targetValue = t[transformKey]\n const propConfig =\n config.propertyConfigs[transformKey] ?? config.baseConfig\n\n // create callback for exit tracking (transform sub-key)\n let callback: AnimationCallback | undefined\n if (currentlyExiting) {\n const capturedKey = `transform:${transformKey}`\n const capturedCycleId = currentCycleId\n callback = (finished) => {\n 'worklet'\n runOnJS(markExitKeyDone)(\n capturedKey,\n capturedCycleId,\n finished ?? false\n )\n }\n }\n\n validTransforms.push({\n [transformKey]: applyAnimation(\n targetValue as number,\n propConfig,\n callback\n ),\n })\n }\n }\n\n if (validTransforms.length > 0) {\n result.transform = validTransforms\n }\n }\n\n return result\n },\n isWeb\n ? [\n animatedStyles,\n baseConfig,\n propertyConfigs,\n disableAnimation,\n isHydrating,\n // pass SharedValues so the mapper watches them on web (no babel plugin)\n animatedTargetsRef,\n staticTargetsRef,\n transformTargetsRef,\n isExitingRef,\n exitCycleIdShared,\n markExitKeyDone,\n ]\n : undefined\n )\n\n silenceAnimatedComponentDevCheck(animatedStyle)\n\n // Debug logging\n if (\n process.env.NODE_ENV === 'development' &&\n props.debug &&\n props.debug !== 'profile'\n ) {\n console.info('[animations-reanimated] useAnimations', {\n animationKey,\n componentState,\n isExiting,\n animatedStyles,\n staticStyles,\n baseConfig,\n propertyConfigs,\n })\n }\n\n return {\n style: [staticStyles, animatedStyle],\n }\n },\n }\n}\n"
|
|
9
|
+
"import { getEffectiveAnimation, normalizeTransition } from '@tamagui/animation-helpers'\nimport {\n getSplitStyles,\n hooks,\n isWeb,\n Text,\n useComposedRefs,\n useEvent,\n useIsomorphicLayoutEffect,\n useThemeWithState,\n View,\n type AnimationDriver,\n type UniversalAnimatedNumber,\n} from '@tamagui/core'\nimport { ResetPresence, usePresence } from '@tamagui/use-presence'\nimport React, { forwardRef, useMemo, useRef } from 'react'\nimport type { SharedValue } from 'react-native-reanimated'\nimport Animated_, {\n cancelAnimation,\n runOnJS,\n runOnUI,\n useAnimatedReaction,\n useAnimatedStyle,\n useDerivedValue,\n useSharedValue,\n withDelay,\n withSpring,\n withTiming,\n type WithSpringConfig,\n type WithTimingConfig,\n} from 'react-native-reanimated'\n\n// =============================================================================\n// ESM/CJS compatibility\n// =============================================================================\n\n/**\n * Handle ESM/CJS module interop for react-native-reanimated\n * @see https://github.com/evanw/esbuild/issues/2480#issuecomment-1833104754\n */\nconst getDefaultExport = <T,>(module: T | { default: T }): T => {\n const mod = module as any\n if (mod.__esModule || mod[Symbol.toStringTag] === 'Module') {\n return mod.default || mod\n }\n return mod\n}\n\nconst Animated = getDefaultExport(Animated_)\n\nconst silenceAnimatedComponentDevCheck = (style: unknown) => {\n if (\n process.env.NODE_ENV !== 'development' ||\n isWeb ||\n !style ||\n typeof style !== 'object'\n ) {\n return\n }\n\n // react fabric's dev performance logger diffs component props and reads the\n // reanimated guard getter even when the style is on an animated component.\n Object.defineProperty(style, '_requiresAnimatedComponent', {\n configurable: true,\n enumerable: false,\n value: true,\n })\n}\n\n// =============================================================================\n// Types\n// =============================================================================\n\ntype ReanimatedAnimatedNumber = SharedValue<number>\n\n/** Spring animation configuration */\ntype SpringConfig = {\n type?: 'spring'\n delay?: number\n} & Partial<WithSpringConfig>\n\n/** Timing animation configuration */\ntype TimingConfig = {\n type: 'timing'\n delay?: number\n} & Partial<WithTimingConfig>\n\n/** Combined animation configuration type */\nexport type TransitionConfig = SpringConfig | TimingConfig\n\n/** Options for createAnimations (reserved for future use) */\nexport type CreateAnimationsOptions = {}\n\n// =============================================================================\n// Utility Functions\n// =============================================================================\n\n/**\n * Resolve dynamic theme values (e.g., `{dynamic: {dark: \"value\", light: \"value\"}}`)\n */\nconst resolveDynamicValue = (value: unknown, isDark: boolean): unknown => {\n if (\n value !== null &&\n typeof value === 'object' &&\n 'dynamic' in value &&\n typeof (value as any).dynamic === 'object'\n ) {\n const dynamic = (value as any).dynamic\n return isDark ? dynamic.dark : dynamic.light\n }\n return value\n}\n\n/** Animation completion callback type */\ntype AnimationCallback = (finished?: boolean) => void\n\nconst cloneAnimationValue = (value: unknown): unknown => {\n if (Array.isArray(value)) {\n return value.map(cloneAnimationValue)\n }\n\n if (value && typeof value === 'object') {\n const next: Record<string, unknown> = {}\n for (const key in value as Record<string, unknown>) {\n next[key] = cloneAnimationValue((value as Record<string, unknown>)[key])\n }\n return next\n }\n\n return value\n}\n\nconst cloneTransitionConfig = (config: TransitionConfig): TransitionConfig => {\n return cloneAnimationValue(config) as TransitionConfig\n}\n\nconst createReanimatedConfig = (config: TransitionConfig): Record<string, unknown> => {\n 'worklet'\n const next: Record<string, unknown> = {}\n const source = config as Record<string, unknown>\n\n for (const key in source) {\n if (key === 'type' || key === 'delay') continue\n const value = source[key]\n if (value !== undefined) {\n next[key] = value\n }\n }\n\n return next\n}\n\n/**\n * Apply animation to a value based on config, with optional completion callback\n */\nconst applyAnimation = (\n targetValue: number | string,\n config: TransitionConfig,\n callback?: AnimationCallback\n): number | string => {\n 'worklet'\n const delay = config.delay\n const reanimatedConfig = createReanimatedConfig(config)\n\n let animatedValue: any\n if (config.type === 'timing') {\n animatedValue = withTiming(\n targetValue as number,\n reanimatedConfig as WithTimingConfig,\n callback\n )\n } else {\n animatedValue = withSpring(\n targetValue as number,\n reanimatedConfig as WithSpringConfig,\n callback\n )\n }\n\n if (delay && delay > 0) {\n animatedValue = withDelay(delay, animatedValue)\n }\n\n return animatedValue\n}\n\n// =============================================================================\n// Animatable Properties\n// =============================================================================\n\nconst ANIMATABLE_PROPERTIES: Record<string, boolean> = {\n // Transform\n transform: true,\n // Opacity\n opacity: true,\n // Dimensions\n height: true,\n width: true,\n minWidth: true,\n minHeight: true,\n maxWidth: true,\n maxHeight: true,\n // Background\n backgroundColor: true,\n // Border colors\n borderColor: true,\n borderLeftColor: true,\n borderRightColor: true,\n borderTopColor: true,\n borderBottomColor: true,\n // Border radius\n borderRadius: true,\n borderTopLeftRadius: true,\n borderTopRightRadius: true,\n borderBottomLeftRadius: true,\n borderBottomRightRadius: true,\n // Border width\n borderWidth: true,\n borderLeftWidth: true,\n borderRightWidth: true,\n borderTopWidth: true,\n borderBottomWidth: true,\n // Text\n color: true,\n fontSize: true,\n fontWeight: true,\n lineHeight: true,\n letterSpacing: true,\n // Position\n left: true,\n right: true,\n top: true,\n bottom: true,\n // Margin\n margin: true,\n marginTop: true,\n marginBottom: true,\n marginLeft: true,\n marginRight: true,\n marginHorizontal: true,\n marginVertical: true,\n // Padding\n padding: true,\n paddingTop: true,\n paddingBottom: true,\n paddingLeft: true,\n paddingRight: true,\n paddingHorizontal: true,\n paddingVertical: true,\n // Flex/Gap\n gap: true,\n rowGap: true,\n columnGap: true,\n flex: true,\n flexGrow: true,\n flexShrink: true,\n}\n\n/**\n * Check if a style property can be animated\n */\nconst canAnimateProperty = (\n key: string,\n value: unknown,\n animateOnly?: string[]\n): boolean => {\n if (!ANIMATABLE_PROPERTIES[key]) return false\n if (value === 'auto') return false\n if (typeof value === 'string' && value.startsWith('calc')) return false\n if (animateOnly && !animateOnly.includes(key)) return false\n return true\n}\n\n// =============================================================================\n// Animated Components (Web)\n// =============================================================================\n\n/**\n * Create a Tamagui-compatible animated component for web\n * Supports data- attributes, className, and proper style handling\n */\nfunction createWebAnimatedComponent(defaultTag: 'div' | 'span') {\n const isText = defaultTag === 'span'\n\n const Component = Animated.createAnimatedComponent(\n forwardRef((propsIn: any, ref) => {\n const { forwardedRef, render = defaultTag, ...rest } = propsIn\n const hostRef = useRef<HTMLElement>(null)\n const composedRefs = useComposedRefs(forwardedRef, ref, hostRef)\n\n const stateRef = useRef<{ host: HTMLElement | null }>({\n get host() {\n return hostRef.current\n },\n })\n\n const [, themeState] = useThemeWithState({})\n\n const result = getSplitStyles(\n rest,\n isText ? Text.staticConfig : View.staticConfig,\n themeState?.theme ?? {},\n themeState?.name ?? '',\n { unmounted: false } as any,\n { isAnimated: false, noClass: true }\n )\n\n const viewProps = result?.viewProps ?? {}\n const Element = render\n const transformedProps = hooks.usePropsTransform?.(\n render,\n viewProps,\n stateRef as any,\n false\n )\n\n return <Element {...transformedProps} ref={composedRefs} />\n })\n )\n ;(Component as any).acceptRenderProp = true\n return Component\n}\n\nconst AnimatedView = createWebAnimatedComponent('div')\nconst AnimatedText = createWebAnimatedComponent('span')\n\n// =============================================================================\n// Transition Config Builder\n// =============================================================================\n\ntype TransitionConfigResult = {\n baseConfig: TransitionConfig\n propertyConfigs: Record<string, TransitionConfig>\n}\n\n/**\n * Builds animation config from a transition prop.\n * Shared logic used in both initial render and style emitter updates.\n */\nfunction buildTransitionConfig<A extends Record<string, TransitionConfig>>(\n transition: any,\n animations: A,\n animationState: 'enter' | 'exit' | 'default',\n styleKeys: Set<string>\n): TransitionConfigResult {\n const normalized = normalizeTransition(transition)\n const effectiveKey = getEffectiveAnimation(normalized, animationState)\n\n let base = cloneTransitionConfig(\n effectiveKey\n ? (animations[effectiveKey as keyof typeof animations] ??\n ({ type: 'spring' } as TransitionConfig))\n : ({ type: 'spring' } as TransitionConfig)\n )\n\n if (normalized.delay) {\n base = cloneTransitionConfig({ ...base, delay: normalized.delay })\n }\n\n if (normalized.config) {\n base = cloneTransitionConfig({ ...base, ...normalized.config })\n // infer type: 'timing' if duration is provided without spring params\n if (\n base.type !== 'timing' &&\n normalized.config.duration !== undefined &&\n normalized.config.damping === undefined &&\n normalized.config.stiffness === undefined &&\n normalized.config.mass === undefined\n ) {\n base = cloneTransitionConfig({ ...base, type: 'timing' })\n }\n }\n\n // build per-property configs\n const propertyConfigs: Record<string, TransitionConfig> = {}\n\n for (const key of styleKeys) {\n const propAnimation = normalized.properties[key]\n if (typeof propAnimation === 'string') {\n propertyConfigs[key] = cloneTransitionConfig(\n animations[propAnimation as keyof typeof animations] ?? base\n )\n } else if (propAnimation && typeof propAnimation === 'object') {\n const configType = (propAnimation as any).type\n const baseForProp = configType\n ? (animations[configType as keyof typeof animations] ?? base)\n : base\n propertyConfigs[key] = cloneTransitionConfig({\n ...baseForProp,\n ...propAnimation,\n } as TransitionConfig)\n } else {\n propertyConfigs[key] = cloneTransitionConfig(base)\n }\n }\n\n return { baseConfig: base, propertyConfigs }\n}\n\n/**\n * Extracts all style keys including transform sub-properties.\n */\nfunction getStyleKeys(style: Record<string, unknown>): Set<string> {\n const keys = new Set(Object.keys(style))\n if (style.transform && Array.isArray(style.transform)) {\n for (const t of style.transform as Record<string, unknown>[]) {\n if (t && typeof t === 'object') {\n keys.add(Object.keys(t)[0])\n }\n }\n }\n return keys\n}\n\n// =============================================================================\n// Animation Driver Factory\n// =============================================================================\n\n/**\n * Create a Reanimated-based animation driver for Tamagui.\n *\n * This is a native Reanimated implementation without Moti dependency.\n * It provides smooth spring and timing animations with full support for:\n * - Per-property animation configurations\n * - Exit animations with proper completion callbacks\n * - Dynamic theme value resolution\n * - Transform property animations\n * - avoidReRenders optimization for hover/press/focus states\n *\n * @example\n * ```tsx\n * const animations = createAnimations({\n * fast: { type: 'spring', damping: 20, stiffness: 250 },\n * slow: { type: 'timing', duration: 500 },\n * })\n *\n * ```\n */\nexport function createAnimations<A extends Record<string, TransitionConfig>>(\n animationsConfig: A\n): AnimationDriver<A> {\n // Normalize animation configs - default to spring if not specified\n // This matches behavior of moti and motion drivers\n const animations = {} as A\n for (const key in animationsConfig) {\n animations[key] = cloneTransitionConfig({\n type: 'spring',\n ...animationsConfig[key],\n }) as A[typeof key]\n }\n\n return {\n needsCustomComponent: true,\n View: isWeb ? AnimatedView : Animated.View,\n Text: isWeb ? AnimatedText : Animated.Text,\n isReactNative: true,\n inputStyle: 'value',\n outputStyle: 'inline',\n avoidReRenders: true,\n animations,\n usePresence,\n ResetPresence,\n\n // =========================================================================\n // useAnimatedNumber - For imperative animated values\n // =========================================================================\n useAnimatedNumber(initial): UniversalAnimatedNumber<ReanimatedAnimatedNumber> {\n const sharedValue = useSharedValue(initial)\n\n return useMemo(\n () => ({\n getInstance() {\n 'worklet'\n return sharedValue\n },\n\n getValue() {\n 'worklet'\n return sharedValue.value\n },\n\n setValue(next, config = { type: 'spring' }, onFinish) {\n if (config.type === 'direct') {\n sharedValue.value = next\n onFinish?.()\n } else {\n // animations must start on the ui thread in reanimated 4.x -\n // withSpring/withTiming return animation descriptors that only\n // work when assigned to a SharedValue inside the UI runtime\n const cb = onFinish\n ? () => {\n 'worklet'\n runOnJS(onFinish)()\n }\n : undefined\n\n const animationConfig = cloneTransitionConfig(config)\n\n if (isWeb) {\n // on web there's no UI thread - set directly\n sharedValue.value = applyAnimation(next, animationConfig, cb)\n } else {\n runOnUI((targetValue: number, animationConfig: TransitionConfig) => {\n 'worklet'\n sharedValue.value = applyAnimation(targetValue, animationConfig, cb)\n })(next, animationConfig)\n }\n }\n },\n\n stop() {\n cancelAnimation(sharedValue)\n },\n }),\n [sharedValue]\n )\n },\n\n // =========================================================================\n // useAnimatedNumberReaction - React to animated value changes\n // =========================================================================\n useAnimatedNumberReaction({ value }, onValue) {\n const instance = value.getInstance()\n\n return useAnimatedReaction(\n () => instance.value,\n (next, prev) => {\n if (prev !== next) {\n runOnJS(onValue)(next)\n }\n },\n [onValue, instance]\n )\n },\n\n // =========================================================================\n // useAnimatedNumberStyle - Create animated styles from values\n // =========================================================================\n useAnimatedNumberStyle(val, getStyle) {\n const instance = val.getInstance()\n\n if (isWeb) {\n // web: must pass explicit deps (no babel plugin)\n return useAnimatedStyle(() => {\n 'worklet'\n return getStyle(instance.value)\n }, [instance, getStyle])\n }\n\n const styleVal = useDerivedValue(() => {\n 'worklet'\n return getStyle(instance.value)\n })\n\n const animatedStyle = useAnimatedStyle(() => {\n 'worklet'\n return styleVal.value\n })\n\n silenceAnimatedComponentDevCheck(animatedStyle)\n\n return animatedStyle\n },\n\n useAnimatedNumbersStyle(vals, getStyle) {\n const instances = vals.map((v) => v.getInstance())\n\n const animatedStyle = useAnimatedStyle(\n () => {\n 'worklet'\n const currentValues = instances.map((inst) => inst.value)\n return getStyle(...currentValues)\n },\n isWeb ? [getStyle, ...instances] : undefined\n )\n\n silenceAnimatedComponentDevCheck(animatedStyle)\n\n return animatedStyle\n },\n\n // =========================================================================\n // useAnimations - Main animation hook for components\n // =========================================================================\n useAnimations(animationProps) {\n const {\n props,\n presence,\n style,\n componentState,\n useStyleEmitter,\n themeName,\n stateRef,\n styleState,\n } = animationProps\n\n // State flags\n const isHydrating = componentState.unmounted === true\n const isMounting = componentState.unmounted === 'should-enter'\n const isEntering = !!componentState.unmounted\n\n // Presence state for exit animations\n const isExiting = presence?.[0] === false\n\n // Track if we just finished entering (transition from entering to not entering)\n const wasEnteringRef = useRef(isEntering)\n const justFinishedEntering = wasEnteringRef.current && !isEntering\n React.useEffect(() => {\n wasEnteringRef.current = isEntering\n })\n\n // Use effectiveTransition computed by createComponent (single source of truth)\n const effectiveTransition = styleState?.effectiveTransition ?? props.transition\n const normalized = normalizeTransition(effectiveTransition)\n // Use 'enter' if we're mounting OR if we just finished entering\n const animationState: 'enter' | 'exit' | 'default' = isExiting\n ? 'exit'\n : isMounting || justFinishedEntering\n ? 'enter'\n : 'default'\n const animationKey = getEffectiveAnimation(normalized, animationState)\n\n const disableAnimation = isHydrating || !animationKey\n\n // Theme state for dynamic values - use themeName from props instead of hook\n const isDark = themeName?.startsWith('dark') || false\n\n // Get sendExitComplete callback from presence\n const sendExitComplete = presence?.[1]\n\n // =========================================================================\n // Exit cycle state for deterministic per-property completion tracking\n // =========================================================================\n const exitCycleIdRef = useRef(0)\n const pendingExitKeysRef = useRef<Set<string>>(new Set())\n const exitCompletedRef = useRef(false)\n const wasExitingRef = useRef(false)\n\n // detect transition into/out of exiting state\n const justStartedExiting = isExiting && !wasExitingRef.current\n const justStoppedExiting = !isExiting && wasExitingRef.current\n\n // stable callback to mark a property as done (called from worklet via runOnJS)\n const markExitKeyDone = useEvent(\n (key: string, cycleId: number, finished: boolean) => {\n // ignore callbacks from stale cycles\n if (cycleId !== exitCycleIdRef.current) return\n // ignore if already completed\n if (exitCompletedRef.current) return\n // count both finished and canceled animations as \"done\" during exit\n // (element is leaving anyway, canceled animations shouldn't block completion)\n\n pendingExitKeysRef.current.delete(key)\n\n // check if all exit animations are done\n if (pendingExitKeysRef.current.size === 0) {\n exitCompletedRef.current = true\n sendExitComplete?.()\n }\n }\n )\n\n // SharedValue to pass exit state into worklet\n const isExitingRef = useSharedValue(isExiting)\n const exitCycleIdShared = useSharedValue(exitCycleIdRef.current)\n\n // start new exit cycle only on transition INTO exiting (not every render while exiting)\n if (justStartedExiting) {\n exitCycleIdRef.current++\n exitCompletedRef.current = false\n pendingExitKeysRef.current.clear()\n }\n // invalidate pending callbacks when exit is canceled/interrupted\n if (justStoppedExiting) {\n exitCycleIdRef.current++\n pendingExitKeysRef.current.clear()\n }\n\n // update shared values (using effect to avoid writing during render)\n useIsomorphicLayoutEffect(() => {\n isExitingRef.value = isExiting\n exitCycleIdShared.value = exitCycleIdRef.current\n }, [isExiting, exitCycleIdRef.current])\n\n // track previous exiting state\n React.useEffect(() => {\n wasExitingRef.current = isExiting\n })\n\n // =========================================================================\n // avoidRerenders: SharedValues for style updates without re-renders\n // =========================================================================\n const animatedTargetsRef = useSharedValue<Record<string, unknown> | null>(null)\n const staticTargetsRef = useSharedValue<Record<string, unknown> | null>(null)\n const transformTargetsRef = useSharedValue<Array<Record<string, unknown>> | null>(\n null\n )\n\n // Separate styles into animated and static\n const { animatedStyles, staticStyles } = useMemo(() => {\n const animated: Record<string, unknown> = {}\n const staticStyles: Record<string, unknown> = {}\n const animateOnly = props.animateOnly as string[] | undefined\n\n for (const key in style) {\n const rawValue = (style as Record<string, unknown>)[key]\n const value = resolveDynamicValue(rawValue, isDark)\n\n if (value === undefined) continue\n\n if (disableAnimation) {\n staticStyles[key] = cloneAnimationValue(value)\n continue\n }\n\n if (canAnimateProperty(key, value, animateOnly)) {\n animated[key] = cloneAnimationValue(value)\n } else {\n staticStyles[key] = cloneAnimationValue(value)\n }\n }\n\n // During mount, include animated values in static to prevent flicker\n if (isMounting) {\n for (const key in animated) {\n staticStyles[key] = animated[key]\n }\n }\n\n return { animatedStyles: animated, staticStyles }\n }, [disableAnimation, style, isDark, isMounting, props.animateOnly])\n\n // reconcile the emitter latch with real re-renders.\n //\n // the avoidReRenders fast path lets a pure pseudo change (hover/press/focus) push\n // styles straight to the worklet via useStyleEmitter with no React commit — it sets\n // animatedTargetsRef. the worklet then treats `animatedTargetsRef !== null` as a\n // permanent latch: once the emitter has fired even once, it reads its last-emitted\n // snapshot and IGNORES `animatedStyles` from every subsequent re-render. so a base\n // style that changes through React (e.g. a row's `backgroundColor` flipping with an\n // external selection store, not a hover) never reaches the screen — it stays stuck on\n // the stale emitted value until the next hover re-fires the emitter. (the \"active row\n // highlight gets stuck until you hover it again\" report.)\n //\n // a real re-render is the freshest source of truth for the base style, so on render we\n // drop the emitter latch and let the worklet fall back to `animatedStyles`. the one\n // exception: while a self pseudo (hover/press/focus) is active the emitted style is a\n // transient override that isn't in this render, so keep it latched — otherwise an\n // unrelated re-render while hovering would snap back to the base. `pseudoActiveRef`\n // tracks that flag straight off the emitter (which fires on every pseudo transition), so\n // the un-hover/un-press emission flips it false and the next render reclaims the style.\n // no value comparison needed; runtime media stays correct because a render re-reads live\n // media into `animatedStyles`.\n // exit overrides the pseudo exception: the exit render's style IS the\n // authoritative target, and an element that exits while hovered/focused (every\n // dialog closed by clicking a button inside it) would otherwise keep the stale\n // emitted base latched — the worklet then \"animates\" to values already on\n // screen, every exit-key callback completes in a frame, and AnimatePresence\n // unmounts immediately (the dialog-exit-snap). mirrored into a plain ref so the\n // emitter callback (which runs outside render) can read it.\n const pseudoActiveRef = useRef(false)\n const isExitingJSRef = useRef(false)\n isExitingJSRef.current = isExiting\n useIsomorphicLayoutEffect(() => {\n if (\n (isExiting || !pseudoActiveRef.current) &&\n animatedTargetsRef.value !== null\n ) {\n animatedTargetsRef.value = null\n staticTargetsRef.value = null\n transformTargetsRef.value = null\n }\n })\n\n // Build animation config with per-property overrides using normalized transition\n const { baseConfig, propertyConfigs } = useMemo(() => {\n if (isHydrating) {\n return {\n baseConfig: { type: 'timing' as const, duration: 0 },\n propertyConfigs: {} as Record<string, TransitionConfig>,\n }\n }\n\n // use effectiveTransition (createComponent's single source of truth) so a\n // platform-pseudo component with no declared transition resolves its BASE\n // config to instant ('0ms') too — not just its pseudo flips. otherwise base\n // style changes on the driver path animate with the default spring and a\n // hover-out / base color change visibly lingers (looks \"stuck\").\n return buildTransitionConfig(\n effectiveTransition,\n animations,\n animationState,\n getStyleKeys(animatedStyles)\n )\n }, [isHydrating, effectiveTransition, animatedStyles, animationState])\n\n // Store config in SharedValue for worklet access (concurrent-safe)\n // Using useEffect to avoid writing to shared value during render\n const configRef = useSharedValue({\n baseConfig,\n propertyConfigs,\n disableAnimation,\n isHydrating,\n })\n\n useIsomorphicLayoutEffect(() => {\n configRef.value = {\n baseConfig,\n propertyConfigs,\n disableAnimation,\n isHydrating,\n }\n }, [baseConfig, propertyConfigs, disableAnimation, isHydrating])\n\n // =========================================================================\n // avoidRerenders: register style emitter callback\n // when hover/press/etc state changes, this is called instead of re-rendering\n // =========================================================================\n useStyleEmitter?.(\n (nextStyle: Record<string, unknown>, effectiveTransition, pseudoActive) => {\n // while exiting, the exit render owns the style — a pseudo flip mid-exit\n // (hover-out as the element fades under the cursor) must not re-latch the\n // base style over the in-flight exit targets.\n if (isExitingJSRef.current) return\n // track whether a self pseudo is active so the render-time layout effect knows whether\n // this emitter snapshot is a transient override to keep latched or a base it can drop.\n pseudoActiveRef.current = pseudoActive === true\n const animateOnly = props.animateOnly as string[] | undefined\n const animated: Record<string, unknown> = {}\n const statics: Record<string, unknown> = {}\n const transforms: Array<Record<string, unknown>> = []\n\n // effectiveTransition is computed in createComponent based on entering/exiting pseudo states\n // rebuild config whenever transition changes (entering OR exiting pseudo states)\n const transitionToUse = effectiveTransition ?? props.transition\n const { baseConfig: newBase, propertyConfigs: newPropertyConfigs } =\n buildTransitionConfig(\n transitionToUse,\n animations,\n animationState,\n getStyleKeys(nextStyle)\n )\n\n // update configRef with the new config\n configRef.value = {\n baseConfig: newBase,\n propertyConfigs: newPropertyConfigs,\n disableAnimation: configRef.value.disableAnimation,\n isHydrating: configRef.value.isHydrating,\n }\n\n for (const key in nextStyle) {\n const rawValue = nextStyle[key]\n const value = resolveDynamicValue(rawValue, isDark)\n\n if (value == undefined) continue\n\n if (configRef.value.disableAnimation) {\n statics[key] = cloneAnimationValue(value)\n continue\n }\n\n if (key === 'transform' && Array.isArray(value)) {\n for (const t of value as Record<string, unknown>[]) {\n if (t && typeof t === 'object') {\n const tKey = Object.keys(t)[0]\n const tVal = t[tKey]\n if (typeof tVal === 'number' || typeof tVal === 'string') {\n transforms.push(cloneAnimationValue(t) as Record<string, unknown>)\n }\n }\n }\n continue\n }\n\n if (canAnimateProperty(key, value, animateOnly)) {\n animated[key] = cloneAnimationValue(value)\n } else {\n statics[key] = cloneAnimationValue(value)\n }\n }\n\n // update shared values - on web, the mapper watches these if passed in dependencies\n animatedTargetsRef.value = animated\n staticTargetsRef.value = statics\n transformTargetsRef.value = transforms\n\n if (\n process.env.NODE_ENV === 'development' &&\n props.debug &&\n props.debug !== 'profile'\n ) {\n console.info('[animations-reanimated] useStyleEmitter update', {\n animated,\n statics,\n transforms,\n })\n }\n }\n )\n\n // Compute and register exit keys synchronously during render to avoid race conditions\n // This must happen BEFORE useAnimatedStyle runs so callbacks have a populated set\n const exitKeysRegistered = useRef(false)\n if (justStartedExiting && sendExitComplete) {\n const exitKeys: string[] = []\n const animateOnly = props.animateOnly as string[] | undefined\n\n // regular animated properties\n for (const key in animatedStyles) {\n if (key === 'transform') continue\n if (canAnimateProperty(key, animatedStyles[key], animateOnly)) {\n exitKeys.push(key)\n }\n }\n\n // transform sub-keys (filter by animateOnly if specified)\n const transforms = animatedStyles.transform\n if (transforms && Array.isArray(transforms)) {\n for (const t of transforms) {\n if (!t) continue\n const tKey = Object.keys(t)[0]\n if (tKey) {\n // check animateOnly filter for transform sub-keys\n if (animateOnly && !animateOnly.includes(tKey)) {\n continue\n }\n exitKeys.push(`transform:${tKey}`)\n }\n }\n }\n\n // register keys for this cycle\n pendingExitKeysRef.current = new Set(exitKeys)\n exitKeysRegistered.current = exitKeys.length > 0\n }\n\n // handle zero-animation case in effect (after render commit)\n React.useEffect(() => {\n if (!justStartedExiting || !sendExitComplete) return\n\n // if no keys were registered, complete immediately\n if (!exitKeysRegistered.current && pendingExitKeysRef.current.size === 0) {\n if (!exitCompletedRef.current) {\n exitCompletedRef.current = true\n sendExitComplete()\n }\n }\n }, [justStartedExiting, sendExitComplete])\n\n // Create animated style\n const animatedStyle = useAnimatedStyle(\n () => {\n 'worklet'\n\n if (disableAnimation || isHydrating) {\n return {}\n }\n\n const result: Record<string, any> = {}\n const config = configRef.value\n\n // Check if we have avoidRerenders updates from useStyleEmitter\n const emitterAnimated = animatedTargetsRef.value\n const emitterStatic = staticTargetsRef.value\n const emitterTransforms = transformTargetsRef.value\n const hasEmitterUpdates = emitterAnimated !== null\n\n // Use emitter values if available, otherwise use React state values.\n // statics must fall back to the render's staticStyles (not {}): once an\n // emitter snapshot has applied static keys, reanimated never unsets\n // them, so after the latch drops a stale emitted value (e.g. a border\n // color that missed animateOnly) would keep painting over the fresh\n // style prop forever\n const animatedValues = hasEmitterUpdates ? emitterAnimated! : animatedStyles\n const staticValues = hasEmitterUpdates ? emitterStatic! : staticStyles\n\n // read exit state from shared values\n const currentlyExiting = isExitingRef.value\n const currentCycleId = exitCycleIdShared.value\n\n // Include static values from emitter (for hover/press style changes)\n for (const key in staticValues) {\n result[key] = staticValues[key]\n }\n\n // Animate regular properties\n for (const key in animatedValues) {\n if (key === 'transform') continue\n\n const targetValue = animatedValues[key]\n const propConfig = config.propertyConfigs[key] ?? config.baseConfig\n\n // create callback for exit tracking\n let callback: AnimationCallback | undefined\n if (currentlyExiting) {\n const capturedKey = key\n const capturedCycleId = currentCycleId\n callback = (finished) => {\n 'worklet'\n runOnJS(markExitKeyDone)(capturedKey, capturedCycleId, finished ?? false)\n }\n }\n\n result[key] = applyAnimation(targetValue as number, propConfig, callback)\n }\n\n // Handle transforms\n const transforms = hasEmitterUpdates\n ? emitterTransforms\n : animatedStyles.transform\n\n // Animate transform properties with validation\n if (transforms && Array.isArray(transforms)) {\n const validTransforms: Record<string, unknown>[] = []\n\n for (const t of transforms) {\n if (!t) continue\n const keys = Object.keys(t)\n if (keys.length === 0) continue\n const value = t[keys[0]]\n if (typeof value === 'number' || typeof value === 'string') {\n const transformKey = Object.keys(t)[0]\n const targetValue = t[transformKey]\n const propConfig =\n config.propertyConfigs[transformKey] ?? config.baseConfig\n\n // create callback for exit tracking (transform sub-key)\n let callback: AnimationCallback | undefined\n if (currentlyExiting) {\n const capturedKey = `transform:${transformKey}`\n const capturedCycleId = currentCycleId\n callback = (finished) => {\n 'worklet'\n runOnJS(markExitKeyDone)(\n capturedKey,\n capturedCycleId,\n finished ?? false\n )\n }\n }\n\n validTransforms.push({\n [transformKey]: applyAnimation(\n targetValue as number,\n propConfig,\n callback\n ),\n })\n }\n }\n\n if (validTransforms.length > 0) {\n result.transform = validTransforms\n }\n }\n\n return result\n },\n isWeb\n ? [\n animatedStyles,\n staticStyles,\n baseConfig,\n propertyConfigs,\n disableAnimation,\n isHydrating,\n // pass SharedValues so the mapper watches them on web (no babel plugin)\n animatedTargetsRef,\n staticTargetsRef,\n transformTargetsRef,\n isExitingRef,\n exitCycleIdShared,\n markExitKeyDone,\n ]\n : undefined\n )\n\n silenceAnimatedComponentDevCheck(animatedStyle)\n\n // Debug logging\n if (\n process.env.NODE_ENV === 'development' &&\n props.debug &&\n props.debug !== 'profile'\n ) {\n console.info('[animations-reanimated] useAnimations', {\n animationKey,\n componentState,\n isExiting,\n animatedStyles,\n staticStyles,\n baseConfig,\n propertyConfigs,\n })\n }\n\n return {\n style: [staticStyles, animatedStyle],\n }\n },\n }\n}\n"
|
|
10
10
|
]
|
|
11
11
|
}
|