@tamagui/animations-moti 1.43.7 → 1.43.9

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.
@@ -87,33 +87,50 @@ function createAnimations(animations) {
87
87
  return getStyle(val.getValue());
88
88
  }, [val, getStyle]);
89
89
  },
90
- useAnimations: ({ props, presence, style, onDidAnimate }) => {
90
+ useAnimations: ({ props, presence, style, state, onDidAnimate }) => {
91
91
  const animationKey = Array.isArray(props.animation) ? props.animation[0] : props.animation;
92
- let animate = style;
93
- const nonAnimatedStyle = { ...style };
94
- const animateOnly = props.animateOnly ?? ["opacity", "transform"];
95
- animate = {};
96
- animateOnly.forEach((nonAnimatedKey) => {
97
- if (typeof style[nonAnimatedKey] === "undefined")
98
- return;
99
- animate[nonAnimatedKey] = style[nonAnimatedKey];
100
- delete style[nonAnimatedKey];
101
- });
92
+ let animate;
93
+ let dontAnimate;
94
+ const animateOnly = props.animateOnly || ["transform", "opacity"];
95
+ if (animateOnly) {
96
+ animate = {};
97
+ dontAnimate = { ...style };
98
+ for (const key of animateOnly) {
99
+ if (!(key in style))
100
+ continue;
101
+ animate[key] = style[key];
102
+ delete dontAnimate[key];
103
+ }
104
+ } else {
105
+ animate = { ...style };
106
+ dontAnimate = {};
107
+ }
102
108
  const animateStr = JSON.stringify(animate);
103
109
  const styles = (0, import_react.useMemo)(() => JSON.parse(animateStr), [animateStr]);
104
- const isExiting = presence == null ? void 0 : presence[1];
105
- const moti = (0, import_moti.useMotify)({
106
- // without this, the driver breaks on native
107
- // stringifying -> parsing fixes that
110
+ const isExiting = Boolean(presence == null ? void 0 : presence[1]);
111
+ const transition = animations[animationKey];
112
+ const motiProps = {
108
113
  animate: isExiting ? void 0 : styles,
109
- transition: animations[animationKey],
114
+ transition,
110
115
  onDidAnimate,
111
116
  usePresenceValue: presence,
112
117
  presenceContext: (0, import_react.useContext)(import_use_presence.PresenceContext),
113
118
  exit: isExiting ? styles : void 0
114
- });
119
+ };
120
+ const moti = (0, import_moti.useMotify)(!state.isAnimated ? {} : motiProps);
121
+ if (process.env.NODE_ENV === "development" && props["debug"] === "verbose") {
122
+ console.log(`Moti animation:`, {
123
+ animate,
124
+ transition,
125
+ styles,
126
+ moti,
127
+ dontAnimate,
128
+ isExiting,
129
+ motiProps
130
+ });
131
+ }
115
132
  return {
116
- style: [nonAnimatedStyle, moti.style]
133
+ style: [dontAnimate, moti.style]
117
134
  };
118
135
  }
119
136
  };
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/createAnimations.tsx"],
4
- "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,0BAA6C;AAE7C,kBAA0C;AAC1C,mBAAoC;AACpC,qCAKO;AAEA,SAAS,iBACd,YACoB;AACpB,SAAO;AAAA,IACL,MAAM,+BAAAA,QAAS;AAAA,IACf,MAAM,+BAAAA,QAAS;AAAA,IACf,eAAe;AAAA,IACf;AAAA,IACA;AAAA,IAEA,kBAAkB,SAA0C;AAC1D,YAAM,UAAM,+CAAe,OAAO;AAElC,iBAAO;AAAA,QACL,OAAO;AAAA,UACL,cAAc;AACZ;AACA,mBAAO,IAAI;AAAA,UACb;AAAA,UACA,WAAW;AACT;AACA,mBAAO,IAAI;AAAA,UACb;AAAA,UACA,SAAS,MAAM;AACb;AACA,gBAAI,QAAQ;AAAA,UACd;AAAA,UACA,OAAO;AACL;AAAA,UACF;AAAA,QACF;AAAA,QACA,CAAC,GAAG;AAAA,MACN;AAAA,IACF;AAAA,IAEA,0BAA0B,EAAE,MAAM,GAAG,SAAS;AAC5C,iBAAO;AAAA,QACL,MAAM;AACJ,iBAAO,MAAM,SAAS;AAAA,QACxB;AAAA,QACA,CAAC,MAAM,SAAS;AACd,cAAI,SAAS,MAAM;AAGjB,wDAAQ,OAAO,EAAE,IAAI;AAAA,UACvB;AAAA,QACF;AAAA;AAAA,QAEA,CAAC,OAAO,OAAO;AAAA,MACjB;AAAA,IACF;AAAA;AAAA;AAAA;AAAA,IAKA,uBAAuB,KAAK,UAAU;AACpC,iBAAO,gDAAgB,MAAM;AAC3B,eAAO,SAAS,IAAI,SAAS,CAAC;AAAA,MAEhC,GAAG,CAAC,KAAK,QAAQ,CAAC;AAAA,IACpB;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,UAAU;AAEd,YAAM,mBAAuC,EAAE,GAAG,MAAM;AACxD,YAAM,cAAc,MAAM,eAAe,CAAC,WAAW,WAAW;AAEhE,gBAAU,CAAC;AACX,kBAAY,QAAQ,CAAC,mBAAmB;AACtC,YAAI,OAAO,MAAM,cAAc,MAAM;AAAa;AAClD,gBAAQ,cAAc,IAAI,MAAM,cAAc;AAC9C,eAAO,MAAM,cAAc;AAAA,MAC7B,CAAC;AAED,YAAM,aAAa,KAAK,UAAU,OAAO;AACzC,YAAM,aAAS,sBAAQ,MAAM,KAAK,MAAM,UAAU,GAAG,CAAC,UAAU,CAAC;AACjE,YAAM,YAAY,qCAAW;AAE7B,YAAM,WAAO,uBAAU;AAAA;AAAA;AAAA,QAGrB,SAAS,YAAY,SAAY;AAAA,QACjC,YAAY,WAAW,YAAuC;AAAA,QAC9D;AAAA,QACA,kBAAkB;AAAA,QAClB,qBAAiB,yBAAW,mCAAe;AAAA,QAC3C,MAAM,YAAY,SAAS;AAAA,MAC7B,CAAC;AAED,aAAO;AAAA,QACL,OAAO,CAAC,kBAAkB,KAAK,KAAK;AAAA,MACtC;AAAA,IACF;AAAA,EACF;AACF;",
4
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,0BAA6C;AAE7C,kBAA0C;AAC1C,mBAAoC;AACpC,qCAKO;AAEA,SAAS,iBACd,YACoB;AACpB,SAAO;AAAA,IACL,MAAM,+BAAAA,QAAS;AAAA,IACf,MAAM,+BAAAA,QAAS;AAAA,IACf,eAAe;AAAA,IACf;AAAA,IACA;AAAA,IAEA,kBAAkB,SAA0C;AAC1D,YAAM,UAAM,+CAAe,OAAO;AAElC,iBAAO;AAAA,QACL,OAAO;AAAA,UACL,cAAc;AACZ;AACA,mBAAO,IAAI;AAAA,UACb;AAAA,UACA,WAAW;AACT;AACA,mBAAO,IAAI;AAAA,UACb;AAAA,UACA,SAAS,MAAM;AACb;AACA,gBAAI,QAAQ;AAAA,UACd;AAAA,UACA,OAAO;AACL;AAAA,UACF;AAAA,QACF;AAAA,QACA,CAAC,GAAG;AAAA,MACN;AAAA,IACF;AAAA,IAEA,0BAA0B,EAAE,MAAM,GAAG,SAAS;AAC5C,iBAAO;AAAA,QACL,MAAM;AACJ,iBAAO,MAAM,SAAS;AAAA,QACxB;AAAA,QACA,CAAC,MAAM,SAAS;AACd,cAAI,SAAS,MAAM;AAGjB,wDAAQ,OAAO,EAAE,IAAI;AAAA,UACvB;AAAA,QACF;AAAA;AAAA,QAEA,CAAC,OAAO,OAAO;AAAA,MACjB;AAAA,IACF;AAAA;AAAA;AAAA;AAAA,IAKA,uBAAuB,KAAK,UAAU;AACpC,iBAAO,gDAAgB,MAAM;AAC3B,eAAO,SAAS,IAAI,SAAS,CAAC;AAAA,MAEhC,GAAG,CAAC,KAAK,QAAQ,CAAC;AAAA,IACpB;AAAA,IAEA,eAAe,CAAC,EAAE,OAAO,UAAU,OAAO,OAAO,aAAa,MAAM;AAClE,YAAM,eAAe,MAAM,QAAQ,MAAM,SAAS,IAC9C,MAAM,UAAU,CAAC,IACjB,MAAM;AAEV,UAAI;AACJ,UAAI;AAEJ,YAAM,cAAc,MAAM,eAAe,CAAC,aAAa,SAAS;AAChE,UAAI,aAAa;AACf,kBAAU,CAAC;AACX,sBAAc,EAAE,GAAG,MAAM;AAEzB,mBAAW,OAAO,aAAa;AAC7B,cAAI,EAAE,OAAO;AAAQ;AACrB,kBAAQ,GAAG,IAAI,MAAM,GAAG;AACxB,iBAAO,YAAY,GAAG;AAAA,QACxB;AAAA,MACF,OAAO;AACL,kBAAU,EAAE,GAAG,MAAM;AACrB,sBAAc,CAAC;AAAA,MACjB;AAIA,YAAM,aAAa,KAAK,UAAU,OAAO;AACzC,YAAM,aAAS,sBAAQ,MAAM,KAAK,MAAM,UAAU,GAAG,CAAC,UAAU,CAAC;AAEjE,YAAM,YAAY,QAAQ,qCAAW,EAAE;AACvC,YAAM,aAAa,WAAW,YAAuC;AAErE,YAAM,YAAY;AAAA,QAChB,SAAS,YAAY,SAAY;AAAA,QACjC;AAAA,QACA;AAAA,QACA,kBAAkB;AAAA,QAClB,qBAAiB,yBAAW,mCAAe;AAAA,QAC3C,MAAM,YAAY,SAAS;AAAA,MAC7B;AAEA,YAAM,WAAO,uBAAU,CAAC,MAAM,aAAa,CAAC,IAAI,SAAS;AAEzD,UAAI,QAAQ,IAAI,aAAa,iBAAiB,MAAM,OAAO,MAAM,WAAW;AAE1E,gBAAQ,IAAI,mBAAmB;AAAA,UAC7B;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,QACF,CAAC;AAAA,MACH;AAEA,aAAO;AAAA,QACL,OAAO,CAAC,aAAa,KAAK,KAAK;AAAA,MACjC;AAAA,IACF;AAAA,EACF;AACF;",
5
5
  "names": ["Animated"]
6
6
  }
@@ -59,33 +59,50 @@ function createAnimations(animations) {
59
59
  return getStyle(val.getValue());
60
60
  }, [val, getStyle]);
61
61
  },
62
- useAnimations: ({ props, presence, style, onDidAnimate }) => {
62
+ useAnimations: ({ props, presence, style, state, onDidAnimate }) => {
63
63
  const animationKey = Array.isArray(props.animation) ? props.animation[0] : props.animation;
64
- let animate = style;
65
- const nonAnimatedStyle = { ...style };
66
- const animateOnly = props.animateOnly ?? ["opacity", "transform"];
67
- animate = {};
68
- animateOnly.forEach((nonAnimatedKey) => {
69
- if (typeof style[nonAnimatedKey] === "undefined")
70
- return;
71
- animate[nonAnimatedKey] = style[nonAnimatedKey];
72
- delete style[nonAnimatedKey];
73
- });
64
+ let animate;
65
+ let dontAnimate;
66
+ const animateOnly = props.animateOnly || ["transform", "opacity"];
67
+ if (animateOnly) {
68
+ animate = {};
69
+ dontAnimate = { ...style };
70
+ for (const key of animateOnly) {
71
+ if (!(key in style))
72
+ continue;
73
+ animate[key] = style[key];
74
+ delete dontAnimate[key];
75
+ }
76
+ } else {
77
+ animate = { ...style };
78
+ dontAnimate = {};
79
+ }
74
80
  const animateStr = JSON.stringify(animate);
75
81
  const styles = useMemo(() => JSON.parse(animateStr), [animateStr]);
76
- const isExiting = presence == null ? void 0 : presence[1];
77
- const moti = useMotify({
78
- // without this, the driver breaks on native
79
- // stringifying -> parsing fixes that
82
+ const isExiting = Boolean(presence == null ? void 0 : presence[1]);
83
+ const transition = animations[animationKey];
84
+ const motiProps = {
80
85
  animate: isExiting ? void 0 : styles,
81
- transition: animations[animationKey],
86
+ transition,
82
87
  onDidAnimate,
83
88
  usePresenceValue: presence,
84
89
  presenceContext: useContext(PresenceContext),
85
90
  exit: isExiting ? styles : void 0
86
- });
91
+ };
92
+ const moti = useMotify(!state.isAnimated ? {} : motiProps);
93
+ if (process.env.NODE_ENV === "development" && props["debug"] === "verbose") {
94
+ console.log(`Moti animation:`, {
95
+ animate,
96
+ transition,
97
+ styles,
98
+ moti,
99
+ dontAnimate,
100
+ isExiting,
101
+ motiProps
102
+ });
103
+ }
87
104
  return {
88
- style: [nonAnimatedStyle, moti.style]
105
+ style: [dontAnimate, moti.style]
89
106
  };
90
107
  }
91
108
  };
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/createAnimations.tsx"],
4
- "mappings": "AAAA,SAAS,iBAAiB,mBAAmB;AAE7C,SAAyB,iBAAiB;AAC1C,SAAS,YAAY,eAAe;AACpC,OAAO;AAAA,EACL;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AAEA,SAAS,iBACd,YACoB;AACpB,SAAO;AAAA,IACL,MAAM,SAAS;AAAA,IACf,MAAM,SAAS;AAAA,IACf,eAAe;AAAA,IACf;AAAA,IACA;AAAA,IAEA,kBAAkB,SAA0C;AAC1D,YAAM,MAAM,eAAe,OAAO;AAElC,aAAO;AAAA,QACL,OAAO;AAAA,UACL,cAAc;AACZ;AACA,mBAAO,IAAI;AAAA,UACb;AAAA,UACA,WAAW;AACT;AACA,mBAAO,IAAI;AAAA,UACb;AAAA,UACA,SAAS,MAAM;AACb;AACA,gBAAI,QAAQ;AAAA,UACd;AAAA,UACA,OAAO;AACL;AAAA,UACF;AAAA,QACF;AAAA,QACA,CAAC,GAAG;AAAA,MACN;AAAA,IACF;AAAA,IAEA,0BAA0B,EAAE,MAAM,GAAG,SAAS;AAC5C,aAAO;AAAA,QACL,MAAM;AACJ,iBAAO,MAAM,SAAS;AAAA,QACxB;AAAA,QACA,CAAC,MAAM,SAAS;AACd,cAAI,SAAS,MAAM;AAGjB,oBAAQ,OAAO,EAAE,IAAI;AAAA,UACvB;AAAA,QACF;AAAA;AAAA,QAEA,CAAC,OAAO,OAAO;AAAA,MACjB;AAAA,IACF;AAAA;AAAA;AAAA;AAAA,IAKA,uBAAuB,KAAK,UAAU;AACpC,aAAO,gBAAgB,MAAM;AAC3B,eAAO,SAAS,IAAI,SAAS,CAAC;AAAA,MAEhC,GAAG,CAAC,KAAK,QAAQ,CAAC;AAAA,IACpB;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,UAAU;AAEd,YAAM,mBAAuC,EAAE,GAAG,MAAM;AACxD,YAAM,cAAc,MAAM,eAAe,CAAC,WAAW,WAAW;AAEhE,gBAAU,CAAC;AACX,kBAAY,QAAQ,CAAC,mBAAmB;AACtC,YAAI,OAAO,MAAM,cAAc,MAAM;AAAa;AAClD,gBAAQ,cAAc,IAAI,MAAM,cAAc;AAC9C,eAAO,MAAM,cAAc;AAAA,MAC7B,CAAC;AAED,YAAM,aAAa,KAAK,UAAU,OAAO;AACzC,YAAM,SAAS,QAAQ,MAAM,KAAK,MAAM,UAAU,GAAG,CAAC,UAAU,CAAC;AACjE,YAAM,YAAY,qCAAW;AAE7B,YAAM,OAAO,UAAU;AAAA;AAAA;AAAA,QAGrB,SAAS,YAAY,SAAY;AAAA,QACjC,YAAY,WAAW,YAAuC;AAAA,QAC9D;AAAA,QACA,kBAAkB;AAAA,QAClB,iBAAiB,WAAW,eAAe;AAAA,QAC3C,MAAM,YAAY,SAAS;AAAA,MAC7B,CAAC;AAED,aAAO;AAAA,QACL,OAAO,CAAC,kBAAkB,KAAK,KAAK;AAAA,MACtC;AAAA,IACF;AAAA,EACF;AACF;",
4
+ "mappings": "AAAA,SAAS,iBAAiB,mBAAmB;AAE7C,SAAyB,iBAAiB;AAC1C,SAAS,YAAY,eAAe;AACpC,OAAO;AAAA,EACL;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AAEA,SAAS,iBACd,YACoB;AACpB,SAAO;AAAA,IACL,MAAM,SAAS;AAAA,IACf,MAAM,SAAS;AAAA,IACf,eAAe;AAAA,IACf;AAAA,IACA;AAAA,IAEA,kBAAkB,SAA0C;AAC1D,YAAM,MAAM,eAAe,OAAO;AAElC,aAAO;AAAA,QACL,OAAO;AAAA,UACL,cAAc;AACZ;AACA,mBAAO,IAAI;AAAA,UACb;AAAA,UACA,WAAW;AACT;AACA,mBAAO,IAAI;AAAA,UACb;AAAA,UACA,SAAS,MAAM;AACb;AACA,gBAAI,QAAQ;AAAA,UACd;AAAA,UACA,OAAO;AACL;AAAA,UACF;AAAA,QACF;AAAA,QACA,CAAC,GAAG;AAAA,MACN;AAAA,IACF;AAAA,IAEA,0BAA0B,EAAE,MAAM,GAAG,SAAS;AAC5C,aAAO;AAAA,QACL,MAAM;AACJ,iBAAO,MAAM,SAAS;AAAA,QACxB;AAAA,QACA,CAAC,MAAM,SAAS;AACd,cAAI,SAAS,MAAM;AAGjB,oBAAQ,OAAO,EAAE,IAAI;AAAA,UACvB;AAAA,QACF;AAAA;AAAA,QAEA,CAAC,OAAO,OAAO;AAAA,MACjB;AAAA,IACF;AAAA;AAAA;AAAA;AAAA,IAKA,uBAAuB,KAAK,UAAU;AACpC,aAAO,gBAAgB,MAAM;AAC3B,eAAO,SAAS,IAAI,SAAS,CAAC;AAAA,MAEhC,GAAG,CAAC,KAAK,QAAQ,CAAC;AAAA,IACpB;AAAA,IAEA,eAAe,CAAC,EAAE,OAAO,UAAU,OAAO,OAAO,aAAa,MAAM;AAClE,YAAM,eAAe,MAAM,QAAQ,MAAM,SAAS,IAC9C,MAAM,UAAU,CAAC,IACjB,MAAM;AAEV,UAAI;AACJ,UAAI;AAEJ,YAAM,cAAc,MAAM,eAAe,CAAC,aAAa,SAAS;AAChE,UAAI,aAAa;AACf,kBAAU,CAAC;AACX,sBAAc,EAAE,GAAG,MAAM;AAEzB,mBAAW,OAAO,aAAa;AAC7B,cAAI,EAAE,OAAO;AAAQ;AACrB,kBAAQ,GAAG,IAAI,MAAM,GAAG;AACxB,iBAAO,YAAY,GAAG;AAAA,QACxB;AAAA,MACF,OAAO;AACL,kBAAU,EAAE,GAAG,MAAM;AACrB,sBAAc,CAAC;AAAA,MACjB;AAIA,YAAM,aAAa,KAAK,UAAU,OAAO;AACzC,YAAM,SAAS,QAAQ,MAAM,KAAK,MAAM,UAAU,GAAG,CAAC,UAAU,CAAC;AAEjE,YAAM,YAAY,QAAQ,qCAAW,EAAE;AACvC,YAAM,aAAa,WAAW,YAAuC;AAErE,YAAM,YAAY;AAAA,QAChB,SAAS,YAAY,SAAY;AAAA,QACjC;AAAA,QACA;AAAA,QACA,kBAAkB;AAAA,QAClB,iBAAiB,WAAW,eAAe;AAAA,QAC3C,MAAM,YAAY,SAAS;AAAA,MAC7B;AAEA,YAAM,OAAO,UAAU,CAAC,MAAM,aAAa,CAAC,IAAI,SAAS;AAEzD,UAAI,QAAQ,IAAI,aAAa,iBAAiB,MAAM,OAAO,MAAM,WAAW;AAE1E,gBAAQ,IAAI,mBAAmB;AAAA,UAC7B;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,QACF,CAAC;AAAA,MACH;AAEA,aAAO;AAAA,QACL,OAAO,CAAC,aAAa,KAAK,KAAK;AAAA,MACjC;AAAA,IACF;AAAA,EACF;AACF;",
5
5
  "names": []
6
6
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tamagui/animations-moti",
3
- "version": "1.43.7",
3
+ "version": "1.43.9",
4
4
  "source": "src/index.ts",
5
5
  "license": "MIT",
6
6
  "types": "./types/index.d.ts",
@@ -12,11 +12,11 @@
12
12
  "dist"
13
13
  ],
14
14
  "dependencies": {
15
- "@tamagui/use-presence": "1.43.7",
16
- "@tamagui/web": "1.43.7"
15
+ "@tamagui/use-presence": "1.43.9",
16
+ "@tamagui/web": "1.43.9"
17
17
  },
18
18
  "devDependencies": {
19
- "@tamagui/build": "1.43.7",
19
+ "@tamagui/build": "1.43.9",
20
20
  "moti": "^0.25.3",
21
21
  "react-native-reanimated": "^3.3.0"
22
22
  },
@@ -71,40 +71,63 @@ export function createAnimations<A extends Record<string, MotiTransition>>(
71
71
  }, [val, getStyle])
72
72
  },
73
73
 
74
- useAnimations: ({ props, presence, style, onDidAnimate }) => {
74
+ useAnimations: ({ props, presence, style, state, onDidAnimate }) => {
75
75
  const animationKey = Array.isArray(props.animation)
76
76
  ? props.animation[0]
77
77
  : props.animation
78
78
 
79
- let animate = style
79
+ let animate: Object | undefined
80
+ let dontAnimate: Object | undefined
80
81
 
81
- const nonAnimatedStyle: object | undefined = { ...style }
82
- const animateOnly = props.animateOnly ?? ['opacity', 'transform']
82
+ const animateOnly = props.animateOnly || ['transform', 'opacity']
83
+ if (animateOnly) {
84
+ animate = {}
85
+ dontAnimate = { ...style }
83
86
 
84
- animate = {}
85
- animateOnly.forEach((nonAnimatedKey) => {
86
- if (typeof style[nonAnimatedKey] === 'undefined') return
87
- animate[nonAnimatedKey] = style[nonAnimatedKey]
88
- delete style[nonAnimatedKey]
89
- })
87
+ for (const key of animateOnly) {
88
+ if (!(key in style)) continue
89
+ animate[key] = style[key]
90
+ delete dontAnimate[key]
91
+ }
92
+ } else {
93
+ animate = { ...style }
94
+ dontAnimate = {}
95
+ }
90
96
 
97
+ // without this, the driver breaks on native
98
+ // stringifying -> parsing fixes that
91
99
  const animateStr = JSON.stringify(animate)
92
100
  const styles = useMemo(() => JSON.parse(animateStr), [animateStr])
93
- const isExiting = presence?.[1]
94
101
 
95
- const moti = useMotify({
96
- // without this, the driver breaks on native
97
- // stringifying -> parsing fixes that
102
+ const isExiting = Boolean(presence?.[1])
103
+ const transition = animations[animationKey as keyof typeof animations]
104
+
105
+ const motiProps = {
98
106
  animate: isExiting ? undefined : styles,
99
- transition: animations[animationKey as keyof typeof animations],
107
+ transition,
100
108
  onDidAnimate,
101
109
  usePresenceValue: presence as any,
102
110
  presenceContext: useContext(PresenceContext),
103
111
  exit: isExiting ? styles : undefined,
104
- })
112
+ }
113
+
114
+ const moti = useMotify(!state.isAnimated ? {} : motiProps)
115
+
116
+ if (process.env.NODE_ENV === 'development' && props['debug'] === 'verbose') {
117
+ // rome-ignore lint/nursery/noConsoleLog: <explanation>
118
+ console.log(`Moti animation:`, {
119
+ animate,
120
+ transition,
121
+ styles,
122
+ moti,
123
+ dontAnimate,
124
+ isExiting,
125
+ motiProps,
126
+ })
127
+ }
105
128
 
106
129
  return {
107
- style: [nonAnimatedStyle, moti.style],
130
+ style: [dontAnimate, moti.style],
108
131
  }
109
132
  },
110
133
  }
@@ -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,EAAE,cAAc,EAAa,MAAM,MAAM,CAAA;AAShD,wBAAgB,gBAAgB,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,EACvE,UAAU,EAAE,CAAC,GACZ,eAAe,CAAC,CAAC,CAAC,CAiGpB"}
1
+ {"version":3,"file":"createAnimations.d.ts","sourceRoot":"","sources":["../src/createAnimations.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAA2B,MAAM,cAAc,CAAA;AACvE,OAAO,EAAE,cAAc,EAAa,MAAM,MAAM,CAAA;AAShD,wBAAgB,gBAAgB,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,EACvE,UAAU,EAAE,CAAC,GACZ,eAAe,CAAC,CAAC,CAAC,CAwHpB"}