@tamagui/animations-moti 1.85.3 → 1.85.5

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.
@@ -31,8 +31,6 @@ function createAnimations(animations) {
31
31
  View: import_react_native_reanimated.default.View,
32
32
  Text: import_react_native_reanimated.default.Text,
33
33
  isReactNative: !0,
34
- keepStyleSSR: !0,
35
- supportsCSSVars: !0,
36
34
  animations,
37
35
  usePresence: import_use_presence.usePresence,
38
36
  ResetPresence: import_use_presence.ResetPresence,
@@ -78,34 +76,40 @@ function createAnimations(animations) {
78
76
  const instance = val.getInstance(), derivedValue = (0, import_react_native_reanimated.useDerivedValue)(() => instance.value, [instance, getStyle]);
79
77
  return (0, import_react_native_reanimated.useAnimatedStyle)(() => getStyle(derivedValue.value), [val, getStyle, derivedValue, instance]);
80
78
  },
81
- useAnimations: ({ props, presence, style, onDidAnimate }) => {
82
- const animationKey = Array.isArray(props.animation) ? props.animation[0] : props.animation;
83
- let animate, dontAnimate;
84
- const animateOnly = props.animateOnly || ["transform", "opacity"];
85
- if (animateOnly) {
86
- animate = {}, dontAnimate = { ...style };
87
- for (const key of animateOnly)
88
- key in style && (animate[key] = style[key], delete dontAnimate[key]);
89
- } else
90
- animate = { ...style }, dontAnimate = {};
91
- const animateStr = JSON.stringify(animate), styles = (0, import_react.useMemo)(() => JSON.parse(animateStr), [animateStr]), isExiting = !!(presence != null && presence[1]), sendExitComplete = presence == null ? void 0 : presence[1], transition = animations[animationKey], onDidAnimateCombined = (0, import_react.useCallback)(() => {
79
+ useAnimations: (animationProps) => {
80
+ const { props, presence, style, onDidAnimate, componentState } = animationProps, animationKey = Array.isArray(props.animation) ? props.animation[0] : props.animation, isHydrating = componentState.unmounted === "should-enter";
81
+ let animate = {}, dontAnimate = {};
82
+ if (isHydrating)
83
+ dontAnimate = style;
84
+ else {
85
+ const animateOnly = props.animateOnly || ["transform", "opacity"];
86
+ if (animateOnly) {
87
+ dontAnimate = { ...style };
88
+ for (const key of animateOnly)
89
+ key in style && (animate[key] = style[key], delete dontAnimate[key]);
90
+ } else
91
+ animate = style;
92
+ }
93
+ const animateStr = JSON.stringify(animate), styles = (0, import_react.useMemo)(() => JSON.parse(animateStr), [animateStr]), isExiting = !!(presence != null && presence[1]), sendExitComplete = presence == null ? void 0 : presence[1], onDidAnimateCombined = (0, import_react.useCallback)(() => {
92
94
  onDidAnimate == null || onDidAnimate(), sendExitComplete == null || sendExitComplete();
93
95
  }, []), motiProps = {
94
- animate: isExiting ? void 0 : styles,
95
- transition,
96
+ animate: isExiting || isHydrating ? {} : styles,
97
+ transition: animations[animationKey],
98
+ // isHydrating
99
+ // ? ({ type: 'timing', duration: 0 } as const)
100
+ // : componentState.unmounted
101
+ // ? { type: 'timing', duration: 0 }
102
+ // : animations[animationKey as keyof typeof animations]
96
103
  onDidAnimate: onDidAnimateCombined,
97
104
  usePresenceValue: presence,
98
105
  presenceContext: (0, import_react.useContext)(import_use_presence.PresenceContext),
99
106
  exit: isExiting ? styles : void 0
100
107
  }, moti = (0, import_author.useMotify)(motiProps);
101
- return process.env.NODE_ENV === "development" && props.debug === "verbose" && console.info("Moti animation:", {
102
- animate,
103
- transition,
104
- styles,
108
+ return process.env.NODE_ENV === "development" && props.debug && console.info("useMotify(", JSON.stringify(motiProps, null, 2) + ")", {
109
+ animationProps,
110
+ motiProps,
105
111
  moti,
106
- dontAnimate,
107
- isExiting,
108
- animateStr
112
+ style: [dontAnimate, moti.style]
109
113
  }), {
110
114
  style: [dontAnimate, moti.style]
111
115
  };
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/createAnimations.tsx"],
4
- "mappings": "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",
4
+ "mappings": "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",
5
5
  "names": ["Animated"]
6
6
  }
@@ -32,8 +32,6 @@ function createAnimations(animations) {
32
32
  View: import_react_native_reanimated.default.View,
33
33
  Text: import_react_native_reanimated.default.Text,
34
34
  isReactNative: !0,
35
- keepStyleSSR: !0,
36
- supportsCSSVars: !0,
37
35
  animations,
38
36
  usePresence: import_use_presence.usePresence,
39
37
  ResetPresence: import_use_presence.ResetPresence,
@@ -79,34 +77,40 @@ function createAnimations(animations) {
79
77
  const instance = val.getInstance(), derivedValue = (0, import_react_native_reanimated.useDerivedValue)(() => instance.value, [instance, getStyle]);
80
78
  return (0, import_react_native_reanimated.useAnimatedStyle)(() => getStyle(derivedValue.value), [val, getStyle, derivedValue, instance]);
81
79
  },
82
- useAnimations: ({ props, presence, style, onDidAnimate }) => {
83
- const animationKey = Array.isArray(props.animation) ? props.animation[0] : props.animation;
84
- let animate, dontAnimate;
85
- const animateOnly = props.animateOnly || ["transform", "opacity"];
86
- if (animateOnly) {
87
- animate = {}, dontAnimate = { ...style };
88
- for (const key of animateOnly)
89
- key in style && (animate[key] = style[key], delete dontAnimate[key]);
90
- } else
91
- animate = { ...style }, dontAnimate = {};
92
- const animateStr = JSON.stringify(animate), styles = (0, import_react.useMemo)(() => JSON.parse(animateStr), [animateStr]), isExiting = !!(presence != null && presence[1]), sendExitComplete = presence == null ? void 0 : presence[1], transition = animations[animationKey], onDidAnimateCombined = (0, import_react.useCallback)(() => {
80
+ useAnimations: (animationProps) => {
81
+ const { props, presence, style, onDidAnimate, componentState } = animationProps, animationKey = Array.isArray(props.animation) ? props.animation[0] : props.animation, isHydrating = componentState.unmounted === "should-enter";
82
+ let animate = {}, dontAnimate = {};
83
+ if (isHydrating)
84
+ dontAnimate = style;
85
+ else {
86
+ const animateOnly = props.animateOnly || ["transform", "opacity"];
87
+ if (animateOnly) {
88
+ dontAnimate = { ...style };
89
+ for (const key of animateOnly)
90
+ key in style && (animate[key] = style[key], delete dontAnimate[key]);
91
+ } else
92
+ animate = style;
93
+ }
94
+ const animateStr = JSON.stringify(animate), styles = (0, import_react.useMemo)(() => JSON.parse(animateStr), [animateStr]), isExiting = !!(presence != null && presence[1]), sendExitComplete = presence == null ? void 0 : presence[1], onDidAnimateCombined = (0, import_react.useCallback)(() => {
93
95
  onDidAnimate == null || onDidAnimate(), sendExitComplete == null || sendExitComplete();
94
96
  }, []), motiProps = {
95
- animate: isExiting ? void 0 : styles,
96
- transition,
97
+ animate: isExiting || isHydrating ? {} : styles,
98
+ transition: animations[animationKey],
99
+ // isHydrating
100
+ // ? ({ type: 'timing', duration: 0 } as const)
101
+ // : componentState.unmounted
102
+ // ? { type: 'timing', duration: 0 }
103
+ // : animations[animationKey as keyof typeof animations]
97
104
  onDidAnimate: onDidAnimateCombined,
98
105
  usePresenceValue: presence,
99
106
  presenceContext: (0, import_react.useContext)(import_use_presence.PresenceContext),
100
107
  exit: isExiting ? styles : void 0
101
108
  }, moti = (0, import_author.useMotify)(motiProps);
102
- return process.env.NODE_ENV === "development" && props.debug === "verbose" && console.info("Moti animation:", {
103
- animate,
104
- transition,
105
- styles,
109
+ return process.env.NODE_ENV === "development" && props.debug && console.info("useMotify(", JSON.stringify(motiProps, null, 2) + ")", {
110
+ animationProps,
111
+ motiProps,
106
112
  moti,
107
- dontAnimate,
108
- isExiting,
109
- animateStr
113
+ style: [dontAnimate, moti.style]
110
114
  }), {
111
115
  style: [dontAnimate, moti.style]
112
116
  };
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/createAnimations.tsx"],
4
- "mappings": ";;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,0BAA4D,kCAG5D,gBAA0B,wBAC1B,eAAiD,kBACjD,iCAUO;AAIA,SAAS,iBACd,YACoB;AACpB,SAAO;AAAA,IACL,MAAM,+BAAAA,QAAS;AAAA,IACf,MAAM,+BAAAA,QAAS;AAAA,IACf,eAAe;AAAA,IACf,cAAc;AAAA,IACd,iBAAiB;AAAA,IACjB;AAAA,IACA;AAAA,IACA;AAAA,IAEA,kBAAkB,SAA4D;AAC5E,YAAM,kBAAc,+CAAe,OAAO;AAE1C,iBAAO;AAAA,QACL,OAAO;AAAA,UACL,cAAc;AACZ;AACA,mBAAO;AAAA,UACT;AAAA,UACA,WAAW;AACT;AACA,mBAAO,YAAY;AAAA,UACrB;AAAA,UACA,SAAS,MAAM,SAAS,EAAE,MAAM,SAAS,GAAG;AAC1C;AACA,YAAI,OAAO,SAAS,WAClB,YAAY,QAAQ,OACX,OAAO,SAAS,WACzB,YAAY,YAAQ,2CAAW,MAAM,MAAM,IAE3C,YAAY,YAAQ,2CAAW,MAAM,MAAM;AAAA,UAE/C;AAAA,UACA,OAAO;AACL;AACA,gEAAgB,WAAW;AAAA,UAC7B;AAAA,QACF;AAAA,QACA,CAAC,WAAW;AAAA,MACd;AAAA,IACF;AAAA,IAEA,0BAA0B,EAAE,MAAM,GAAG,SAAS;AAC5C,YAAM,WAAW,MAAM,YAAY;AACnC,iBAAO;AAAA,QACL,MACS,SAAS;AAAA,QAElB,CAAC,MAAM,SAAS;AACd,UAAI,SAAS,YAGX,wCAAQ,OAAO,EAAE,IAAI;AAAA,QAEzB;AAAA;AAAA,QAEA,CAAC,SAAS,QAAQ;AAAA,MACpB;AAAA,IACF;AAAA;AAAA;AAAA;AAAA,IAKA,uBAAuB,KAAK,UAAU;AACpC,YAAM,WAAW,IAAI,YAAY,GAG3B,mBAAe,gDAAgB,MAC5B,SAAS,OAEf,CAAC,UAAU,QAAQ,CAAC;AAEvB,iBAAO,iDAAiB,MACf,SAAS,aAAa,KAAK,GAEjC,CAAC,KAAK,UAAU,cAAc,QAAQ,CAAC;AAAA,IAC5C;AAAA,IAEA,eAAe,CAAC,EAAE,OAAO,UAAU,OAAO,aAAa,MAAM;AAC3D,YAAM,eAAe,MAAM,QAAQ,MAAM,SAAS,IAC9C,MAAM,UAAU,CAAC,IACjB,MAAM;AAEV,UAAI,SACA;AAEJ,YAAM,cAAc,MAAM,eAAe,CAAC,aAAa,SAAS;AAChE,UAAI,aAAa;AACf,kBAAU,CAAC,GACX,cAAc,EAAE,GAAG,MAAM;AACzB,mBAAW,OAAO;AAChB,UAAM,OAAO,UACb,QAAQ,GAAG,IAAI,MAAM,GAAG,GACxB,OAAO,YAAY,GAAG;AAAA,MAE1B;AACE,kBAAU,EAAE,GAAG,MAAM,GACrB,cAAc,CAAC;AAKjB,YAAM,aAAa,KAAK,UAAU,OAAO,GACnC,aAAS,sBAAQ,MAAM,KAAK,MAAM,UAAU,GAAG,CAAC,UAAU,CAAC,GAC3D,YAAY,GAAQ,6BAAW,KAC/B,mBAAmB,qCAAW,IAC9B,aAAa,WAAW,YAAuC,GAE/D,2BAAuB,0BAAY,MAAM;AAC7C,gDACA;AAAA,MACF,GAAG,CAAC,CAAC,GAEC,YAAY;AAAA,QAChB,SAAS,YAAY,SAAY;AAAA,QACjC;AAAA,QACA,cAAc;AAAA,QACd,kBAAkB;AAAA,QAClB,qBAAiB,yBAAW,mCAAe;AAAA,QAC3C,MAAM,YAAY,SAAS;AAAA,MAC7B,GAEM,WAAO,yBAAU,SAAS;AAEhC,aAAI,QAAQ,IAAI,aAAa,iBAAiB,MAAM,UAAa,aAC/D,QAAQ,KAAK,mBAAmB;AAAA,QAC9B;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MACF,CAAC,GAGI;AAAA,QACL,OAAO,CAAC,aAAa,KAAK,KAAK;AAAA,MACjC;AAAA,IACF;AAAA,EACF;AACF;",
4
+ "mappings": "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",
5
5
  "names": ["Animated"]
6
6
  }
@@ -16,8 +16,6 @@ function createAnimations(animations) {
16
16
  View: Animated.View,
17
17
  Text: Animated.Text,
18
18
  isReactNative: !0,
19
- keepStyleSSR: !0,
20
- supportsCSSVars: !0,
21
19
  animations,
22
20
  usePresence,
23
21
  ResetPresence,
@@ -63,34 +61,40 @@ function createAnimations(animations) {
63
61
  const instance = val.getInstance(), derivedValue = useDerivedValue(() => instance.value, [instance, getStyle]);
64
62
  return useAnimatedStyle(() => getStyle(derivedValue.value), [val, getStyle, derivedValue, instance]);
65
63
  },
66
- useAnimations: ({ props, presence, style, onDidAnimate }) => {
67
- const animationKey = Array.isArray(props.animation) ? props.animation[0] : props.animation;
68
- let animate, dontAnimate;
69
- const animateOnly = props.animateOnly || ["transform", "opacity"];
70
- if (animateOnly) {
71
- animate = {}, dontAnimate = { ...style };
72
- for (const key of animateOnly)
73
- key in style && (animate[key] = style[key], delete dontAnimate[key]);
74
- } else
75
- animate = { ...style }, dontAnimate = {};
76
- const animateStr = JSON.stringify(animate), styles = useMemo(() => JSON.parse(animateStr), [animateStr]), isExiting = !!presence?.[1], sendExitComplete = presence?.[1], transition = animations[animationKey], onDidAnimateCombined = useCallback(() => {
64
+ useAnimations: (animationProps) => {
65
+ const { props, presence, style, onDidAnimate, componentState } = animationProps, animationKey = Array.isArray(props.animation) ? props.animation[0] : props.animation, isHydrating = componentState.unmounted === "should-enter";
66
+ let animate = {}, dontAnimate = {};
67
+ if (isHydrating)
68
+ dontAnimate = style;
69
+ else {
70
+ const animateOnly = props.animateOnly || ["transform", "opacity"];
71
+ if (animateOnly) {
72
+ dontAnimate = { ...style };
73
+ for (const key of animateOnly)
74
+ key in style && (animate[key] = style[key], delete dontAnimate[key]);
75
+ } else
76
+ animate = style;
77
+ }
78
+ const animateStr = JSON.stringify(animate), styles = useMemo(() => JSON.parse(animateStr), [animateStr]), isExiting = !!presence?.[1], sendExitComplete = presence?.[1], onDidAnimateCombined = useCallback(() => {
77
79
  onDidAnimate?.(), sendExitComplete?.();
78
80
  }, []), motiProps = {
79
- animate: isExiting ? void 0 : styles,
80
- transition,
81
+ animate: isExiting || isHydrating ? {} : styles,
82
+ transition: animations[animationKey],
83
+ // isHydrating
84
+ // ? ({ type: 'timing', duration: 0 } as const)
85
+ // : componentState.unmounted
86
+ // ? { type: 'timing', duration: 0 }
87
+ // : animations[animationKey as keyof typeof animations]
81
88
  onDidAnimate: onDidAnimateCombined,
82
89
  usePresenceValue: presence,
83
90
  presenceContext: useContext(PresenceContext),
84
91
  exit: isExiting ? styles : void 0
85
92
  }, moti = useMotify(motiProps);
86
- return process.env.NODE_ENV === "development" && props.debug === "verbose" && console.info("Moti animation:", {
87
- animate,
88
- transition,
89
- styles,
93
+ return process.env.NODE_ENV === "development" && props.debug && console.info("useMotify(", JSON.stringify(motiProps, null, 2) + ")", {
94
+ animationProps,
95
+ motiProps,
90
96
  moti,
91
- dontAnimate,
92
- isExiting,
93
- animateStr
97
+ style: [dontAnimate, moti.style]
94
98
  }), {
95
99
  style: [dontAnimate, moti.style]
96
100
  };
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/createAnimations.tsx"],
4
- "mappings": "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",
4
+ "mappings": "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",
5
5
  "names": []
6
6
  }
@@ -16,8 +16,6 @@ function createAnimations(animations) {
16
16
  View: Animated.View,
17
17
  Text: Animated.Text,
18
18
  isReactNative: !0,
19
- keepStyleSSR: !0,
20
- supportsCSSVars: !0,
21
19
  animations,
22
20
  usePresence,
23
21
  ResetPresence,
@@ -63,34 +61,40 @@ function createAnimations(animations) {
63
61
  const instance = val.getInstance(), derivedValue = useDerivedValue(() => instance.value, [instance, getStyle]);
64
62
  return useAnimatedStyle(() => getStyle(derivedValue.value), [val, getStyle, derivedValue, instance]);
65
63
  },
66
- useAnimations: ({ props, presence, style, onDidAnimate }) => {
67
- const animationKey = Array.isArray(props.animation) ? props.animation[0] : props.animation;
68
- let animate, dontAnimate;
69
- const animateOnly = props.animateOnly || ["transform", "opacity"];
70
- if (animateOnly) {
71
- animate = {}, dontAnimate = { ...style };
72
- for (const key of animateOnly)
73
- key in style && (animate[key] = style[key], delete dontAnimate[key]);
74
- } else
75
- animate = { ...style }, dontAnimate = {};
76
- const animateStr = JSON.stringify(animate), styles = useMemo(() => JSON.parse(animateStr), [animateStr]), isExiting = !!presence?.[1], sendExitComplete = presence?.[1], transition = animations[animationKey], onDidAnimateCombined = useCallback(() => {
64
+ useAnimations: (animationProps) => {
65
+ const { props, presence, style, onDidAnimate, componentState } = animationProps, animationKey = Array.isArray(props.animation) ? props.animation[0] : props.animation, isHydrating = componentState.unmounted === "should-enter";
66
+ let animate = {}, dontAnimate = {};
67
+ if (isHydrating)
68
+ dontAnimate = style;
69
+ else {
70
+ const animateOnly = props.animateOnly || ["transform", "opacity"];
71
+ if (animateOnly) {
72
+ dontAnimate = { ...style };
73
+ for (const key of animateOnly)
74
+ key in style && (animate[key] = style[key], delete dontAnimate[key]);
75
+ } else
76
+ animate = style;
77
+ }
78
+ const animateStr = JSON.stringify(animate), styles = useMemo(() => JSON.parse(animateStr), [animateStr]), isExiting = !!presence?.[1], sendExitComplete = presence?.[1], onDidAnimateCombined = useCallback(() => {
77
79
  onDidAnimate?.(), sendExitComplete?.();
78
80
  }, []), motiProps = {
79
- animate: isExiting ? void 0 : styles,
80
- transition,
81
+ animate: isExiting || isHydrating ? {} : styles,
82
+ transition: animations[animationKey],
83
+ // isHydrating
84
+ // ? ({ type: 'timing', duration: 0 } as const)
85
+ // : componentState.unmounted
86
+ // ? { type: 'timing', duration: 0 }
87
+ // : animations[animationKey as keyof typeof animations]
81
88
  onDidAnimate: onDidAnimateCombined,
82
89
  usePresenceValue: presence,
83
90
  presenceContext: useContext(PresenceContext),
84
91
  exit: isExiting ? styles : void 0
85
92
  }, moti = useMotify(motiProps);
86
- return process.env.NODE_ENV === "development" && props.debug === "verbose" && console.info("Moti animation:", {
87
- animate,
88
- transition,
89
- styles,
93
+ return process.env.NODE_ENV === "development" && props.debug && console.info("useMotify(", JSON.stringify(motiProps, null, 2) + ")", {
94
+ animationProps,
95
+ motiProps,
90
96
  moti,
91
- dontAnimate,
92
- isExiting,
93
- animateStr
97
+ style: [dontAnimate, moti.style]
94
98
  }), {
95
99
  style: [dontAnimate, moti.style]
96
100
  };
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/createAnimations.tsx"],
4
- "mappings": "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",
4
+ "mappings": "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",
5
5
  "names": []
6
6
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tamagui/animations-moti",
3
- "version": "1.85.3",
3
+ "version": "1.85.5",
4
4
  "source": "src/index.ts",
5
5
  "license": "MIT",
6
6
  "types": "./types/index.d.ts",
@@ -15,13 +15,14 @@
15
15
  "dist"
16
16
  ],
17
17
  "dependencies": {
18
- "@tamagui/use-presence": "1.85.3",
19
- "@tamagui/web": "1.85.3",
20
- "moti": "^0.25.3"
18
+ "@tamagui/use-presence": "1.85.5",
19
+ "@tamagui/web": "1.85.5",
20
+ "moti": "^0.27.2",
21
+ "react": "^18.2.0"
21
22
  },
22
23
  "devDependencies": {
23
- "@tamagui/build": "1.85.3",
24
- "react-native-reanimated": "~3.3.0"
24
+ "@tamagui/build": "1.85.5",
25
+ "react-native-reanimated": "~3.4.1"
25
26
  },
26
27
  "scripts": {
27
28
  "build": "tamagui-build",
@@ -2,7 +2,7 @@ import { PresenceContext, ResetPresence, usePresence } from '@tamagui/use-presen
2
2
  import { AnimationDriver, UniversalAnimatedNumber } from '@tamagui/web'
3
3
  import type { MotiTransition } from 'moti'
4
4
  import { useMotify } from 'moti/author'
5
- import { useCallback, useContext, useMemo } from 'react'
5
+ import { useCallback, useContext, useMemo, useRef } from 'react'
6
6
  import Animated, {
7
7
  SharedValue,
8
8
  cancelAnimation,
@@ -24,8 +24,6 @@ export function createAnimations<A extends Record<string, MotiTransition>>(
24
24
  View: Animated.View,
25
25
  Text: Animated.Text,
26
26
  isReactNative: true,
27
- keepStyleSSR: true,
28
- supportsCSSVars: true,
29
27
  animations,
30
28
  usePresence,
31
29
  ResetPresence,
@@ -98,61 +96,70 @@ export function createAnimations<A extends Record<string, MotiTransition>>(
98
96
  }, [val, getStyle, derivedValue, instance])
99
97
  },
100
98
 
101
- useAnimations: ({ props, presence, style, onDidAnimate }) => {
99
+ useAnimations: (animationProps) => {
100
+ const { props, presence, style, onDidAnimate, componentState } = animationProps
102
101
  const animationKey = Array.isArray(props.animation)
103
102
  ? props.animation[0]
104
103
  : props.animation
105
104
 
106
- let animate: Object | undefined
107
- let dontAnimate: Object | undefined
108
-
109
- const animateOnly = props.animateOnly || ['transform', 'opacity']
110
- if (animateOnly) {
111
- animate = {}
112
- dontAnimate = { ...style }
113
- for (const key of animateOnly) {
114
- if (!(key in style)) continue
115
- animate[key] = style[key]
116
- delete dontAnimate[key]
117
- }
105
+ const isHydrating = componentState.unmounted === 'should-enter'
106
+ let animate = {}
107
+ let dontAnimate = {}
108
+
109
+ if (isHydrating) {
110
+ dontAnimate = style
118
111
  } else {
119
- animate = { ...style }
120
- dontAnimate = {}
112
+ const animateOnly = props.animateOnly || ['transform', 'opacity']
113
+ if (animateOnly) {
114
+ dontAnimate = { ...style }
115
+ for (const key of animateOnly) {
116
+ if (key in style) {
117
+ animate[key] = style[key]
118
+ delete dontAnimate[key]
119
+ }
120
+ }
121
+ } else {
122
+ animate = style
123
+ }
121
124
  }
122
125
 
123
126
  // without this, the driver breaks on native
124
127
  // stringifying -> parsing fixes that
125
128
  const animateStr = JSON.stringify(animate)
126
129
  const styles = useMemo(() => JSON.parse(animateStr), [animateStr])
130
+
127
131
  const isExiting = Boolean(presence?.[1])
128
132
  const sendExitComplete = presence?.[1]
129
- const transition = animations[animationKey as keyof typeof animations]
130
133
 
131
134
  const onDidAnimateCombined = useCallback(() => {
132
135
  onDidAnimate?.()
133
136
  sendExitComplete?.()
134
137
  }, [])
135
138
 
139
+ type UseMotiProps = Parameters<typeof useMotify>[0]
140
+
136
141
  const motiProps = {
137
- animate: isExiting ? undefined : styles,
138
- transition,
142
+ animate: isExiting || isHydrating ? {} : styles,
143
+ transition: animations[animationKey as keyof typeof animations],
144
+ // isHydrating
145
+ // ? ({ type: 'timing', duration: 0 } as const)
146
+ // : componentState.unmounted
147
+ // ? { type: 'timing', duration: 0 }
148
+ // : animations[animationKey as keyof typeof animations]
139
149
  onDidAnimate: onDidAnimateCombined,
140
150
  usePresenceValue: presence as any,
141
151
  presenceContext: useContext(PresenceContext),
142
152
  exit: isExiting ? styles : undefined,
143
- }
153
+ } satisfies UseMotiProps
144
154
 
145
155
  const moti = useMotify(motiProps)
146
156
 
147
- if (process.env.NODE_ENV === 'development' && props['debug'] === 'verbose') {
148
- console.info(`Moti animation:`, {
149
- animate,
150
- transition,
151
- styles,
157
+ if (process.env.NODE_ENV === 'development' && props['debug']) {
158
+ console.info(`useMotify(`, JSON.stringify(motiProps, null, 2) + ')', {
159
+ animationProps,
160
+ motiProps,
152
161
  moti,
153
- dontAnimate,
154
- isExiting,
155
- animateStr,
162
+ style: [dontAnimate, moti.style],
156
163
  })
157
164
  }
158
165
 
@@ -1 +1 @@
1
- {"version":3,"file":"createAnimations.d.ts","sourceRoot":"","sources":["../src/createAnimations.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAA2B,MAAM,cAAc,CAAA;AACvE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,MAAM,CAAA;AAiB1C,wBAAgB,gBAAgB,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,EACvE,UAAU,EAAE,CAAC,GACZ,eAAe,CAAC,CAAC,CAAC,CA8IpB"}
1
+ {"version":3,"file":"createAnimations.d.ts","sourceRoot":"","sources":["../src/createAnimations.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAA2B,MAAM,cAAc,CAAA;AACvE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,MAAM,CAAA;AAiB1C,wBAAgB,gBAAgB,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,EACvE,UAAU,EAAE,CAAC,GACZ,eAAe,CAAC,CAAC,CAAC,CAqJpB"}