@tamagui/animations-moti 1.99.0 → 1.100.0

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.
@@ -119,7 +119,7 @@ function createAnimations(animations) {
119
119
  return (0, import_react_native_reanimated.useAnimatedStyle)(() => getStyle(derivedValue.value), [val, getStyle, derivedValue, instance]);
120
120
  },
121
121
  useAnimations: (animationProps) => {
122
- const { props, presence, style, onDidAnimate, componentState } = animationProps, animationKey = Array.isArray(props.animation) ? props.animation[0] : props.animation, isHydrating = componentState.unmounted === "should-enter";
122
+ const { props, presence, style, onDidAnimate, componentState } = animationProps, animationKey = Array.isArray(props.animation) ? props.animation[0] : props.animation, isHydrating = componentState.unmounted === !0;
123
123
  let animate = {}, dontAnimate = {};
124
124
  if (isHydrating)
125
125
  dontAnimate = style;
@@ -127,10 +127,13 @@ function createAnimations(animations) {
127
127
  const animateOnly = props.animateOnly;
128
128
  for (const key in style) {
129
129
  const value = style[key];
130
- !onlyAnimateKeys[key] || value === "auto" || animateOnly && !animateOnly.includes(key) ? dontAnimate[key] = value : animate[key] = value;
130
+ !onlyAnimateKeys[key] || value === "auto" || typeof value == "string" && value.startsWith("calc") || animateOnly && !animateOnly.includes(key) ? dontAnimate[key] = value : animate[key] = value;
131
131
  }
132
132
  }
133
- const animateStr = JSON.stringify(animate), styles = (0, import_react.useMemo)(() => JSON.parse(animateStr), [animateStr]), isExiting = !!presence?.[1], presenceContext = (0, import_react.useContext)(import_use_presence.PresenceContext), usePresenceValue = presence || void 0, transition = animations[animationKey];
133
+ componentState.unmounted === "should-enter" && (dontAnimate = style);
134
+ const animateStr = JSON.stringify(animate), styles = (0, import_react.useMemo)(() => JSON.parse(animateStr), [animateStr]), isExiting = !!presence?.[1], presenceContext = (0, import_react.useContext)(import_use_presence.PresenceContext), usePresenceValue = presence || void 0, transition = isHydrating ? { type: "transition", duration: 0 } : {
135
+ ...animations[animationKey]
136
+ };
134
137
  if (Array.isArray(props.animation)) {
135
138
  const config = props.animation[1];
136
139
  if (config && typeof config == "object")
@@ -140,7 +143,8 @@ function createAnimations(animations) {
140
143
  }
141
144
  }
142
145
  const motiProps = {
143
- animate: isExiting || isHydrating ? {} : styles,
146
+ animate: isExiting || componentState.unmounted ? {} : styles,
147
+ from: componentState.unmounted ? styles : {},
144
148
  transition,
145
149
  usePresenceValue,
146
150
  presenceContext,
@@ -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
  }
@@ -26,7 +26,27 @@ __export(createAnimations_exports, {
26
26
  createAnimations: () => createAnimations
27
27
  });
28
28
  module.exports = __toCommonJS(createAnimations_exports);
29
- var import_use_presence = require("@tamagui/use-presence"), import_author = require("moti/author"), import_react = require("react"), import_react_native_reanimated = __toESM(require("react-native-reanimated")), onlyAnimateKeys = {
29
+ var import_use_presence = require("@tamagui/use-presence"), import_author = require("moti/author"), import_react = require("react"), import_react_native_reanimated = __toESM(require("react-native-reanimated"));
30
+ function _define_property(obj, key, value) {
31
+ return key in obj ? Object.defineProperty(obj, key, {
32
+ value,
33
+ enumerable: !0,
34
+ configurable: !0,
35
+ writable: !0
36
+ }) : obj[key] = value, obj;
37
+ }
38
+ function _object_spread(target) {
39
+ for (var i = 1; i < arguments.length; i++) {
40
+ var source = arguments[i] != null ? arguments[i] : {}, ownKeys = Object.keys(source);
41
+ typeof Object.getOwnPropertySymbols == "function" && (ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function(sym) {
42
+ return Object.getOwnPropertyDescriptor(source, sym).enumerable;
43
+ }))), ownKeys.forEach(function(key) {
44
+ _define_property(target, key, source[key]);
45
+ });
46
+ }
47
+ return target;
48
+ }
49
+ var onlyAnimateKeys = {
30
50
  transform: !0,
31
51
  opacity: !0,
32
52
  height: !0,
@@ -140,21 +160,25 @@ function createAnimations(animations) {
140
160
  );
141
161
  },
142
162
  useAnimations: function(animationProps) {
143
- var props = animationProps.props, presence = animationProps.presence, style = animationProps.style, onDidAnimate = animationProps.onDidAnimate, componentState = animationProps.componentState, animationKey = Array.isArray(props.animation) ? props.animation[0] : props.animation, isHydrating = componentState.unmounted === "should-enter", animate = {}, dontAnimate = {};
163
+ var props = animationProps.props, presence = animationProps.presence, style = animationProps.style, onDidAnimate = animationProps.onDidAnimate, componentState = animationProps.componentState, animationKey = Array.isArray(props.animation) ? props.animation[0] : props.animation, isHydrating = componentState.unmounted === !0, animate = {}, dontAnimate = {};
144
164
  if (isHydrating)
145
165
  dontAnimate = style;
146
166
  else {
147
167
  var animateOnly = props.animateOnly;
148
168
  for (var key in style) {
149
169
  var value = style[key];
150
- !onlyAnimateKeys[key] || value === "auto" || animateOnly && !animateOnly.includes(key) ? dontAnimate[key] = value : animate[key] = value;
170
+ !onlyAnimateKeys[key] || value === "auto" || typeof value == "string" && value.startsWith("calc") || animateOnly && !animateOnly.includes(key) ? dontAnimate[key] = value : animate[key] = value;
151
171
  }
152
172
  }
173
+ componentState.unmounted === "should-enter" && (dontAnimate = style);
153
174
  var animateStr = JSON.stringify(animate), styles = (0, import_react.useMemo)(function() {
154
175
  return JSON.parse(animateStr);
155
176
  }, [
156
177
  animateStr
157
- ]), isExiting = !!(presence != null && presence[1]), presenceContext = (0, import_react.useContext)(import_use_presence.PresenceContext), usePresenceValue = presence || void 0, transition = animations[animationKey];
178
+ ]), isExiting = !!(presence != null && presence[1]), presenceContext = (0, import_react.useContext)(import_use_presence.PresenceContext), usePresenceValue = presence || void 0, transition = isHydrating ? {
179
+ type: "transition",
180
+ duration: 0
181
+ } : _object_spread({}, animations[animationKey]);
158
182
  if (Array.isArray(props.animation)) {
159
183
  var config = props.animation[1];
160
184
  if (config && typeof config == "object")
@@ -164,7 +188,8 @@ function createAnimations(animations) {
164
188
  }
165
189
  }
166
190
  var motiProps = {
167
- animate: isExiting || isHydrating ? {} : styles,
191
+ animate: isExiting || componentState.unmounted ? {} : styles,
192
+ from: componentState.unmounted ? styles : {},
168
193
  transition,
169
194
  usePresenceValue,
170
195
  presenceContext,
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/Users/n8/tamagui/packages/animations-moti/src/createAnimations.tsx"],
4
- "mappings": "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",
5
- "names": ["onlyAnimateKeys", "transform", "opacity", "height", "width", "backgroundColor", "borderColor", "borderLeftColor", "borderRightColor", "borderTopColor", "borderBottomColor", "borderRadius", "borderTopLeftRadius", "borderTopRightRadius", "borderBottomLeftRadius", "borderBottomRightRadius", "borderLeftWidth", "borderRightWidth", "borderTopWidth", "borderBottomWidth", "color", "left", "right", "top", "bottom", "createAnimations", "animations", "View", "Animated", "Text", "isReactNative", "usePresence", "ResetPresence", "useAnimatedNumber", "initial", "sharedValue", "useSharedValue", "useMemo", "getInstance", "getValue", "value", "setValue", "next", "config", "type", "onFinish", "withSpring", "runOnJS", "undefined", "withTiming", "stop", "cancelAnimation", "useAnimatedNumberReaction", "onValue", "instance", "useAnimatedReaction", "prev", "useAnimatedNumberStyle", "val", "getStyle", "derivedValue", "useDerivedValue", "useAnimatedStyle", "useAnimations", "animationProps", "props", "presence", "style", "onDidAnimate", "componentState", "animationKey", "Array", "isArray", "animation", "isHydrating", "unmounted", "animate", "dontAnimate", "animateOnly", "key", "includes", "animateStr", "JSON", "stringify", "styles", "parse", "isExiting", "Boolean", "presenceContext", "useContext", "PresenceContext", "usePresenceValue", "transition", "motiProps", "exit", "moti", "useMotify", "process", "env", "NODE_ENV", "console", "info"]
4
+ "mappings": "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",
5
+ "names": ["onlyAnimateKeys", "transform", "opacity", "height", "width", "backgroundColor", "borderColor", "borderLeftColor", "borderRightColor", "borderTopColor", "borderBottomColor", "borderRadius", "borderTopLeftRadius", "borderTopRightRadius", "borderBottomLeftRadius", "borderBottomRightRadius", "borderLeftWidth", "borderRightWidth", "borderTopWidth", "borderBottomWidth", "color", "left", "right", "top", "bottom", "createAnimations", "animations", "View", "Animated", "Text", "isReactNative", "usePresence", "ResetPresence", "useAnimatedNumber", "initial", "sharedValue", "useSharedValue", "useMemo", "getInstance", "getValue", "value", "setValue", "next", "config", "type", "onFinish", "withSpring", "runOnJS", "undefined", "withTiming", "stop", "cancelAnimation", "useAnimatedNumberReaction", "onValue", "instance", "useAnimatedReaction", "prev", "useAnimatedNumberStyle", "val", "getStyle", "derivedValue", "useDerivedValue", "useAnimatedStyle", "useAnimations", "animationProps", "props", "presence", "style", "onDidAnimate", "componentState", "animationKey", "Array", "isArray", "animation", "isHydrating", "unmounted", "animate", "dontAnimate", "animateOnly", "key", "startsWith", "includes", "animateStr", "JSON", "stringify", "styles", "parse", "isExiting", "Boolean", "presenceContext", "useContext", "PresenceContext", "usePresenceValue", "transition", "duration", "motiProps", "from", "exit", "moti", "useMotify", "process", "env", "NODE_ENV", "console", "info"]
6
6
  }
@@ -104,7 +104,7 @@ function createAnimations(animations) {
104
104
  return useAnimatedStyle(() => getStyle(derivedValue.value), [val, getStyle, derivedValue, instance]);
105
105
  },
106
106
  useAnimations: (animationProps) => {
107
- const { props, presence, style, onDidAnimate, componentState } = animationProps, animationKey = Array.isArray(props.animation) ? props.animation[0] : props.animation, isHydrating = componentState.unmounted === "should-enter";
107
+ const { props, presence, style, onDidAnimate, componentState } = animationProps, animationKey = Array.isArray(props.animation) ? props.animation[0] : props.animation, isHydrating = componentState.unmounted === !0;
108
108
  let animate = {}, dontAnimate = {};
109
109
  if (isHydrating)
110
110
  dontAnimate = style;
@@ -112,10 +112,13 @@ function createAnimations(animations) {
112
112
  const animateOnly = props.animateOnly;
113
113
  for (const key in style) {
114
114
  const value = style[key];
115
- !onlyAnimateKeys[key] || value === "auto" || animateOnly && !animateOnly.includes(key) ? dontAnimate[key] = value : animate[key] = value;
115
+ !onlyAnimateKeys[key] || value === "auto" || typeof value == "string" && value.startsWith("calc") || animateOnly && !animateOnly.includes(key) ? dontAnimate[key] = value : animate[key] = value;
116
116
  }
117
117
  }
118
- const animateStr = JSON.stringify(animate), styles = useMemo(() => JSON.parse(animateStr), [animateStr]), isExiting = !!presence?.[1], presenceContext = useContext(PresenceContext), usePresenceValue = presence || void 0, transition = animations[animationKey];
118
+ componentState.unmounted === "should-enter" && (dontAnimate = style);
119
+ const animateStr = JSON.stringify(animate), styles = useMemo(() => JSON.parse(animateStr), [animateStr]), isExiting = !!presence?.[1], presenceContext = useContext(PresenceContext), usePresenceValue = presence || void 0, transition = isHydrating ? { type: "transition", duration: 0 } : {
120
+ ...animations[animationKey]
121
+ };
119
122
  if (Array.isArray(props.animation)) {
120
123
  const config = props.animation[1];
121
124
  if (config && typeof config == "object")
@@ -125,7 +128,8 @@ function createAnimations(animations) {
125
128
  }
126
129
  }
127
130
  const motiProps = {
128
- animate: isExiting || isHydrating ? {} : styles,
131
+ animate: isExiting || componentState.unmounted ? {} : styles,
132
+ from: componentState.unmounted ? styles : {},
129
133
  transition,
130
134
  usePresenceValue,
131
135
  presenceContext,
@@ -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
  }
@@ -100,22 +100,28 @@ function createAnimations(animations) {
100
100
  componentState
101
101
  } = animationProps,
102
102
  animationKey = Array.isArray(props.animation) ? props.animation[0] : props.animation,
103
- isHydrating = componentState.unmounted === "should-enter";
103
+ isHydrating = componentState.unmounted === !0;
104
104
  let animate = {},
105
105
  dontAnimate = {};
106
106
  if (isHydrating) dontAnimate = style;else {
107
107
  const animateOnly = props.animateOnly;
108
108
  for (const key in style) {
109
109
  const value = style[key];
110
- !onlyAnimateKeys[key] || value === "auto" || animateOnly && !animateOnly.includes(key) ? dontAnimate[key] = value : animate[key] = value;
110
+ !onlyAnimateKeys[key] || value === "auto" || typeof value == "string" && value.startsWith("calc") || animateOnly && !animateOnly.includes(key) ? dontAnimate[key] = value : animate[key] = value;
111
111
  }
112
112
  }
113
+ componentState.unmounted === "should-enter" && (dontAnimate = style);
113
114
  const animateStr = JSON.stringify(animate),
114
115
  styles = useMemo(() => JSON.parse(animateStr), [animateStr]),
115
116
  isExiting = !!presence?.[1],
116
117
  presenceContext = useContext(PresenceContext),
117
118
  usePresenceValue = presence || void 0,
118
- transition = animations[animationKey];
119
+ transition = isHydrating ? {
120
+ type: "transition",
121
+ duration: 0
122
+ } : {
123
+ ...animations[animationKey]
124
+ };
119
125
  if (Array.isArray(props.animation)) {
120
126
  const config = props.animation[1];
121
127
  if (config && typeof config == "object") for (const key in config) {
@@ -124,7 +130,8 @@ function createAnimations(animations) {
124
130
  }
125
131
  }
126
132
  const motiProps = {
127
- animate: isExiting || isHydrating ? {} : styles,
133
+ animate: isExiting || componentState.unmounted ? {} : styles,
134
+ from: componentState.unmounted ? styles : {},
128
135
  transition,
129
136
  usePresenceValue,
130
137
  presenceContext,
@@ -2,6 +2,25 @@ import { PresenceContext, ResetPresence, usePresence } from "@tamagui/use-presen
2
2
  import { useMotify } from "moti/author";
3
3
  import { useContext, useMemo } from "react";
4
4
  import Animated, { cancelAnimation, runOnJS, useAnimatedReaction, useAnimatedStyle, useDerivedValue, useSharedValue, withSpring, withTiming } from "react-native-reanimated";
5
+ function _define_property(obj, key, value) {
6
+ return key in obj ? Object.defineProperty(obj, key, {
7
+ value,
8
+ enumerable: !0,
9
+ configurable: !0,
10
+ writable: !0
11
+ }) : obj[key] = value, obj;
12
+ }
13
+ function _object_spread(target) {
14
+ for (var i = 1; i < arguments.length; i++) {
15
+ var source = arguments[i] != null ? arguments[i] : {}, ownKeys = Object.keys(source);
16
+ typeof Object.getOwnPropertySymbols == "function" && (ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function(sym) {
17
+ return Object.getOwnPropertyDescriptor(source, sym).enumerable;
18
+ }))), ownKeys.forEach(function(key) {
19
+ _define_property(target, key, source[key]);
20
+ });
21
+ }
22
+ return target;
23
+ }
5
24
  var onlyAnimateKeys = {
6
25
  transform: !0,
7
26
  opacity: !0,
@@ -116,21 +135,25 @@ function createAnimations(animations) {
116
135
  );
117
136
  },
118
137
  useAnimations: function(animationProps) {
119
- var props = animationProps.props, presence = animationProps.presence, style = animationProps.style, onDidAnimate = animationProps.onDidAnimate, componentState = animationProps.componentState, animationKey = Array.isArray(props.animation) ? props.animation[0] : props.animation, isHydrating = componentState.unmounted === "should-enter", animate = {}, dontAnimate = {};
138
+ var props = animationProps.props, presence = animationProps.presence, style = animationProps.style, onDidAnimate = animationProps.onDidAnimate, componentState = animationProps.componentState, animationKey = Array.isArray(props.animation) ? props.animation[0] : props.animation, isHydrating = componentState.unmounted === !0, animate = {}, dontAnimate = {};
120
139
  if (isHydrating)
121
140
  dontAnimate = style;
122
141
  else {
123
142
  var animateOnly = props.animateOnly;
124
143
  for (var key in style) {
125
144
  var value = style[key];
126
- !onlyAnimateKeys[key] || value === "auto" || animateOnly && !animateOnly.includes(key) ? dontAnimate[key] = value : animate[key] = value;
145
+ !onlyAnimateKeys[key] || value === "auto" || typeof value == "string" && value.startsWith("calc") || animateOnly && !animateOnly.includes(key) ? dontAnimate[key] = value : animate[key] = value;
127
146
  }
128
147
  }
148
+ componentState.unmounted === "should-enter" && (dontAnimate = style);
129
149
  var animateStr = JSON.stringify(animate), styles = useMemo(function() {
130
150
  return JSON.parse(animateStr);
131
151
  }, [
132
152
  animateStr
133
- ]), isExiting = !!(presence != null && presence[1]), presenceContext = useContext(PresenceContext), usePresenceValue = presence || void 0, transition = animations[animationKey];
153
+ ]), isExiting = !!(presence != null && presence[1]), presenceContext = useContext(PresenceContext), usePresenceValue = presence || void 0, transition = isHydrating ? {
154
+ type: "transition",
155
+ duration: 0
156
+ } : _object_spread({}, animations[animationKey]);
134
157
  if (Array.isArray(props.animation)) {
135
158
  var config = props.animation[1];
136
159
  if (config && typeof config == "object")
@@ -140,7 +163,8 @@ function createAnimations(animations) {
140
163
  }
141
164
  }
142
165
  var motiProps = {
143
- animate: isExiting || isHydrating ? {} : styles,
166
+ animate: isExiting || componentState.unmounted ? {} : styles,
167
+ from: componentState.unmounted ? styles : {},
144
168
  transition,
145
169
  usePresenceValue,
146
170
  presenceContext,
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/Users/n8/tamagui/packages/animations-moti/src/createAnimations.tsx"],
4
- "mappings": "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",
5
- "names": ["PresenceContext", "ResetPresence", "usePresence", "useMotify", "useContext", "useMemo", "Animated", "cancelAnimation", "runOnJS", "useAnimatedReaction", "useAnimatedStyle", "useDerivedValue", "useSharedValue", "withSpring", "withTiming", "onlyAnimateKeys", "transform", "opacity", "height", "width", "backgroundColor", "borderColor", "borderLeftColor", "borderRightColor", "borderTopColor", "borderBottomColor", "borderRadius", "borderTopLeftRadius", "borderTopRightRadius", "borderBottomLeftRadius", "borderBottomRightRadius", "borderLeftWidth", "borderRightWidth", "borderTopWidth", "borderBottomWidth", "color", "left", "right", "top", "bottom", "createAnimations", "animations", "View", "Text", "isReactNative", "useAnimatedNumber", "initial", "sharedValue", "getInstance", "getValue", "value", "setValue", "next", "config", "type", "onFinish", "undefined", "stop", "useAnimatedNumberReaction", "onValue", "instance", "prev", "useAnimatedNumberStyle", "val", "getStyle", "derivedValue", "useAnimations", "animationProps", "props", "presence", "style", "onDidAnimate", "componentState", "animationKey", "Array", "isArray", "animation", "isHydrating", "unmounted", "animate", "dontAnimate", "animateOnly", "key", "includes", "animateStr", "JSON", "stringify", "styles", "parse", "isExiting", "Boolean", "presenceContext", "usePresenceValue", "transition", "motiProps", "exit", "moti", "process", "env", "NODE_ENV", "console", "info"]
4
+ "mappings": "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",
5
+ "names": ["PresenceContext", "ResetPresence", "usePresence", "useMotify", "useContext", "useMemo", "Animated", "cancelAnimation", "runOnJS", "useAnimatedReaction", "useAnimatedStyle", "useDerivedValue", "useSharedValue", "withSpring", "withTiming", "onlyAnimateKeys", "transform", "opacity", "height", "width", "backgroundColor", "borderColor", "borderLeftColor", "borderRightColor", "borderTopColor", "borderBottomColor", "borderRadius", "borderTopLeftRadius", "borderTopRightRadius", "borderBottomLeftRadius", "borderBottomRightRadius", "borderLeftWidth", "borderRightWidth", "borderTopWidth", "borderBottomWidth", "color", "left", "right", "top", "bottom", "createAnimations", "animations", "View", "Text", "isReactNative", "useAnimatedNumber", "initial", "sharedValue", "getInstance", "getValue", "value", "setValue", "next", "config", "type", "onFinish", "undefined", "stop", "useAnimatedNumberReaction", "onValue", "instance", "prev", "useAnimatedNumberStyle", "val", "getStyle", "derivedValue", "useAnimations", "animationProps", "props", "presence", "style", "onDidAnimate", "componentState", "animationKey", "Array", "isArray", "animation", "isHydrating", "unmounted", "animate", "dontAnimate", "animateOnly", "key", "startsWith", "includes", "animateStr", "JSON", "stringify", "styles", "parse", "isExiting", "Boolean", "presenceContext", "usePresenceValue", "transition", "duration", "motiProps", "from", "exit", "moti", "process", "env", "NODE_ENV", "console", "info"]
6
6
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tamagui/animations-moti",
3
- "version": "1.99.0",
3
+ "version": "1.100.0",
4
4
  "source": "src/index.ts",
5
5
  "license": "MIT",
6
6
  "types": "./types/index.d.ts",
@@ -15,11 +15,11 @@
15
15
  "dist"
16
16
  ],
17
17
  "dependencies": {
18
- "@tamagui/use-presence": "1.99.0",
19
- "@tamagui/web": "1.99.0"
18
+ "@tamagui/use-presence": "1.100.0",
19
+ "@tamagui/web": "1.100.0"
20
20
  },
21
21
  "devDependencies": {
22
- "@tamagui/build": "1.99.0",
22
+ "@tamagui/build": "1.100.0",
23
23
  "moti": "^0.29.0",
24
24
  "react": "^18.2.0",
25
25
  "react-native-reanimated": "3.11.0"
@@ -177,7 +177,7 @@ export function createAnimations<A extends Record<string, TransitionConfig>>(
177
177
  ? props.animation[0]
178
178
  : props.animation
179
179
 
180
- const isHydrating = componentState.unmounted === 'should-enter'
180
+ const isHydrating = componentState.unmounted === true
181
181
  let animate = {}
182
182
  let dontAnimate = {}
183
183
 
@@ -190,6 +190,7 @@ export function createAnimations<A extends Record<string, TransitionConfig>>(
190
190
  if (
191
191
  !onlyAnimateKeys[key] ||
192
192
  value === 'auto' ||
193
+ (typeof value === 'string' && value.startsWith('calc')) ||
193
194
  (animateOnly && !animateOnly.includes(key))
194
195
  ) {
195
196
  dontAnimate[key] = value
@@ -199,6 +200,11 @@ export function createAnimations<A extends Record<string, TransitionConfig>>(
199
200
  }
200
201
  }
201
202
 
203
+ // if we don't do this moti seems to flicker a frame before applying animation
204
+ if (componentState.unmounted === 'should-enter') {
205
+ dontAnimate = style
206
+ }
207
+
202
208
  // without this, the driver breaks on native
203
209
  // stringifying -> parsing fixes that
204
210
  const animateStr = JSON.stringify(animate)
@@ -211,7 +217,11 @@ export function createAnimations<A extends Record<string, TransitionConfig>>(
211
217
  type UseMotiProps = Parameters<typeof useMotify>[0]
212
218
 
213
219
  // TODO moti is giving us type troubles, but this should work
214
- const transition = animations[animationKey as keyof typeof animations] as any
220
+ const transition = isHydrating
221
+ ? { type: 'transition', duration: 0 }
222
+ : {
223
+ ...(animations[animationKey as keyof typeof animations] as any),
224
+ }
215
225
 
216
226
  if (Array.isArray(props.animation)) {
217
227
  const config = props.animation[1]
@@ -229,7 +239,8 @@ export function createAnimations<A extends Record<string, TransitionConfig>>(
229
239
  }
230
240
 
231
241
  const motiProps = {
232
- animate: isExiting || isHydrating ? {} : styles,
242
+ animate: isExiting || componentState.unmounted ? {} : styles,
243
+ from: componentState.unmounted ? styles : {},
233
244
  transition,
234
245
  usePresenceValue,
235
246
  presenceContext,
@@ -1 +1 @@
1
- {"version":3,"file":"createAnimations.d.ts","sourceRoot":"","sources":["../src/createAnimations.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAA2B,MAAM,cAAc,CAAA;AAC5E,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,MAAM,CAAA;AAuE5C,wBAAgB,gBAAgB,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,EACzE,UAAU,EAAE,CAAC,GACZ,eAAe,CAAC,CAAC,CAAC,CAmLpB"}
1
+ {"version":3,"file":"createAnimations.d.ts","sourceRoot":"","sources":["../src/createAnimations.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAA2B,MAAM,cAAc,CAAA;AAC5E,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,MAAM,CAAA;AAuE5C,wBAAgB,gBAAgB,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,EACzE,UAAU,EAAE,CAAC,GACZ,eAAe,CAAC,CAAC,CAAC,CA8LpB"}