@tamagui/animations-moti 1.123.17 → 1.124.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.
@@ -57,9 +57,7 @@ function createTamaguiAnimatedComponent(defaultTag = "div") {
57
57
  return hostRef.current;
58
58
  }
59
59
  });
60
- const [{
61
- state
62
- }] = (0, import_web.useThemeWithState)({}),
60
+ const [_, state] = (0, import_web.useThemeWithState)({}),
63
61
  props = (0, import_web.getSplitStyles)(propsRest, isText ? import_web.Text.staticConfig : import_web.View.staticConfig, state?.theme, state?.name, {
64
62
  unmounted: !1
65
63
  }, {
@@ -179,42 +177,50 @@ function createAnimations(animations) {
179
177
  } = animationProps,
180
178
  animationKey = Array.isArray(props.animation) ? props.animation[0] : props.animation,
181
179
  isHydrating = componentState.unmounted === !0,
182
- disableAnimation = isHydrating || !animationKey;
183
- let animate = {},
184
- dontAnimate = {};
185
- if (disableAnimation) dontAnimate = style;else {
186
- const animateOnly = props.animateOnly;
187
- for (const key in style) {
188
- const value = style[key];
189
- !onlyAnimateKeys[key] || value === "auto" || typeof value == "string" && value.startsWith("calc") || animateOnly && !animateOnly.includes(key) ? dontAnimate[key] = value : animate[key] = value;
190
- }
191
- }
192
- componentState.unmounted === "should-enter" && (dontAnimate = style);
193
- const styles = animate,
194
- isExiting = !!presence?.[1],
180
+ disableAnimation = isHydrating || !animationKey,
195
181
  presenceContext = import_react.default.useContext(import_use_presence.PresenceContext),
196
- usePresenceValue = presence || void 0;
197
- let transition = isHydrating ? {
198
- type: "transition",
199
- duration: 0
200
- } : animations[animationKey],
201
- hasClonedTransition = !1;
202
- if (Array.isArray(props.animation)) {
203
- const config = props.animation[1];
204
- if (config && typeof config == "object") for (const key in config) {
205
- const val = config[key];
206
- hasClonedTransition || (transition = Object.assign({}, transition), hasClonedTransition = !0), typeof val == "string" ? transition[key] = animations[val] : transition[key] = val;
207
- }
208
- }
209
- const motiProps = {
210
- animate: isExiting || componentState.unmounted === !0 ? {} : styles,
211
- transition: componentState.unmounted ? {
212
- duration: 0
213
- } : transition,
214
- usePresenceValue,
215
- presenceContext,
216
- exit: isExiting ? styles : void 0
217
- },
182
+ {
183
+ dontAnimate,
184
+ motiProps
185
+ } = (0, import_react.useMemo)(() => {
186
+ let animate = {},
187
+ dontAnimate2 = {};
188
+ if (disableAnimation) dontAnimate2 = style;else {
189
+ const animateOnly = props.animateOnly;
190
+ for (const key in style) {
191
+ const value = style[key];
192
+ !onlyAnimateKeys[key] || value === "auto" || typeof value == "string" && value.startsWith("calc") || animateOnly && !animateOnly.includes(key) ? dontAnimate2[key] = value : animate[key] = value;
193
+ }
194
+ }
195
+ componentState.unmounted === "should-enter" && (dontAnimate2 = style);
196
+ const styles = animate,
197
+ isExiting = !!presence?.[1],
198
+ usePresenceValue = presence || void 0;
199
+ let transition = isHydrating ? {
200
+ type: "transition",
201
+ duration: 0
202
+ } : animations[animationKey],
203
+ hasClonedTransition = !1;
204
+ if (Array.isArray(props.animation)) {
205
+ const config = props.animation[1];
206
+ if (config && typeof config == "object") for (const key in config) {
207
+ const val = config[key];
208
+ hasClonedTransition || (transition = Object.assign({}, transition), hasClonedTransition = !0), typeof val == "string" ? transition[key] = animations[val] : transition[key] = val;
209
+ }
210
+ }
211
+ return {
212
+ dontAnimate: dontAnimate2,
213
+ motiProps: {
214
+ animate: isExiting || componentState.unmounted === !0 ? {} : styles,
215
+ transition: componentState.unmounted ? {
216
+ duration: 0
217
+ } : transition,
218
+ usePresenceValue,
219
+ presenceContext,
220
+ exit: isExiting ? styles : void 0
221
+ }
222
+ };
223
+ }, [animationKey, componentState.unmounted, JSON.stringify(style), presenceContext]),
218
224
  moti = (0, import_author.useMotify)(motiProps);
219
225
  return process.env.NODE_ENV === "development" && props.debug && props.debug !== "profile" && console.info("useMotify(", JSON.stringify(motiProps, null, 2) + ")", {
220
226
  "componentState.unmounted": componentState.unmounted,
@@ -35,7 +35,7 @@ function createTamaguiAnimatedComponent(defaultTag = "div") {
35
35
  return hostRef.current;
36
36
  }
37
37
  });
38
- const [{ state }] = (0, import_web.useThemeWithState)({}), props = (0, import_web.getSplitStyles)(
38
+ const [_, state] = (0, import_web.useThemeWithState)({}), props = (0, import_web.getSplitStyles)(
39
39
  propsRest,
40
40
  isText ? import_web.Text.staticConfig : import_web.View.staticConfig,
41
41
  state?.theme,
@@ -150,35 +150,39 @@ function createAnimations(animations) {
150
150
  return (0, import_react_native_reanimated.useAnimatedStyle)(() => getStyle(derivedValue.value), [val, getStyle, derivedValue, instance]);
151
151
  },
152
152
  useAnimations: (animationProps) => {
153
- const { props, presence, style, componentState } = animationProps, animationKey = Array.isArray(props.animation) ? props.animation[0] : props.animation, isHydrating = componentState.unmounted === !0, disableAnimation = isHydrating || !animationKey;
154
- let animate = {}, dontAnimate = {};
155
- if (disableAnimation)
156
- dontAnimate = style;
157
- else {
158
- const animateOnly = props.animateOnly;
159
- for (const key in style) {
160
- const value = style[key];
161
- !onlyAnimateKeys[key] || value === "auto" || typeof value == "string" && value.startsWith("calc") || animateOnly && !animateOnly.includes(key) ? dontAnimate[key] = value : animate[key] = value;
153
+ const { props, presence, style, componentState } = animationProps, animationKey = Array.isArray(props.animation) ? props.animation[0] : props.animation, isHydrating = componentState.unmounted === !0, disableAnimation = isHydrating || !animationKey, presenceContext = import_react.default.useContext(import_use_presence.PresenceContext), { dontAnimate, motiProps } = (0, import_react.useMemo)(() => {
154
+ let animate = {}, dontAnimate2 = {};
155
+ if (disableAnimation)
156
+ dontAnimate2 = style;
157
+ else {
158
+ const animateOnly = props.animateOnly;
159
+ for (const key in style) {
160
+ const value = style[key];
161
+ !onlyAnimateKeys[key] || value === "auto" || typeof value == "string" && value.startsWith("calc") || animateOnly && !animateOnly.includes(key) ? dontAnimate2[key] = value : animate[key] = value;
162
+ }
163
+ }
164
+ componentState.unmounted === "should-enter" && (dontAnimate2 = style);
165
+ const styles = animate, isExiting = !!presence?.[1], usePresenceValue = presence || void 0;
166
+ let transition = isHydrating ? { type: "transition", duration: 0 } : animations[animationKey], hasClonedTransition = !1;
167
+ if (Array.isArray(props.animation)) {
168
+ const config = props.animation[1];
169
+ if (config && typeof config == "object")
170
+ for (const key in config) {
171
+ const val = config[key];
172
+ hasClonedTransition || (transition = Object.assign({}, transition), hasClonedTransition = !0), typeof val == "string" ? transition[key] = animations[val] : transition[key] = val;
173
+ }
162
174
  }
163
- }
164
- componentState.unmounted === "should-enter" && (dontAnimate = style);
165
- const styles = animate, isExiting = !!presence?.[1], presenceContext = import_react.default.useContext(import_use_presence.PresenceContext), usePresenceValue = presence || void 0;
166
- let transition = isHydrating ? { type: "transition", duration: 0 } : animations[animationKey], hasClonedTransition = !1;
167
- if (Array.isArray(props.animation)) {
168
- const config = props.animation[1];
169
- if (config && typeof config == "object")
170
- for (const key in config) {
171
- const val = config[key];
172
- hasClonedTransition || (transition = Object.assign({}, transition), hasClonedTransition = !0), typeof val == "string" ? transition[key] = animations[val] : transition[key] = val;
175
+ return {
176
+ dontAnimate: dontAnimate2,
177
+ motiProps: {
178
+ animate: isExiting || componentState.unmounted === !0 ? {} : styles,
179
+ transition: componentState.unmounted ? { duration: 0 } : transition,
180
+ usePresenceValue,
181
+ presenceContext,
182
+ exit: isExiting ? styles : void 0
173
183
  }
174
- }
175
- const motiProps = {
176
- animate: isExiting || componentState.unmounted === !0 ? {} : styles,
177
- transition: componentState.unmounted ? { duration: 0 } : transition,
178
- usePresenceValue,
179
- presenceContext,
180
- exit: isExiting ? styles : void 0
181
- }, moti = (0, import_author.useMotify)(motiProps);
184
+ };
185
+ }, [animationKey, componentState.unmounted, JSON.stringify(style), presenceContext]), moti = (0, import_author.useMotify)(motiProps);
182
186
  return process.env.NODE_ENV === "development" && props.debug && props.debug !== "profile" && console.info("useMotify(", JSON.stringify(motiProps, null, 2) + ")", {
183
187
  "componentState.unmounted": componentState.unmounted,
184
188
  motiProps,
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/createAnimations.tsx"],
4
- "mappings": "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",
5
- "names": ["Animated", "React"]
4
+ "mappings": "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",
5
+ "names": ["Animated", "React", "dontAnimate"]
6
6
  }
@@ -35,7 +35,7 @@ function createTamaguiAnimatedComponent() {
35
35
  return hostRef.current;
36
36
  }
37
37
  });
38
- var [{ state }] = (0, import_web.useThemeWithState)({}), result = (0, import_web.getSplitStyles)(propsRest, isText ? import_web.Text.staticConfig : import_web.View.staticConfig, state == null ? void 0 : state.theme, state == null ? void 0 : state.name, {
38
+ var [_, state] = (0, import_web.useThemeWithState)({}), result = (0, import_web.getSplitStyles)(propsRest, isText ? import_web.Text.staticConfig : import_web.View.staticConfig, state == null ? void 0 : state.theme, state == null ? void 0 : state.name, {
39
39
  unmounted: !1
40
40
  }, {
41
41
  isAnimated: !1,
@@ -166,38 +166,48 @@ function createAnimations(animations) {
166
166
  );
167
167
  },
168
168
  useAnimations: function(animationProps) {
169
- var { props, presence, style, componentState } = animationProps, animationKey = Array.isArray(props.animation) ? props.animation[0] : props.animation, isHydrating = componentState.unmounted === !0, disableAnimation = isHydrating || !animationKey, animate = {}, dontAnimate = {};
170
- if (disableAnimation)
171
- dontAnimate = style;
172
- else {
173
- var animateOnly = props.animateOnly;
174
- for (var key in style) {
175
- var value = style[key];
176
- !onlyAnimateKeys[key] || value === "auto" || typeof value == "string" && value.startsWith("calc") || animateOnly && !animateOnly.includes(key) ? dontAnimate[key] = value : animate[key] = value;
177
- }
178
- }
179
- componentState.unmounted === "should-enter" && (dontAnimate = style);
180
- var styles = animate, isExiting = !!(presence != null && presence[1]), presenceContext = import_react.default.useContext(import_use_presence.PresenceContext), usePresenceValue = presence || void 0, transition = isHydrating ? {
181
- type: "transition",
182
- duration: 0
183
- } : animations[animationKey], hasClonedTransition = !1;
184
- if (Array.isArray(props.animation)) {
185
- var config = props.animation[1];
186
- if (config && typeof config == "object")
187
- for (var key1 in config) {
188
- var val = config[key1];
189
- hasClonedTransition || (transition = Object.assign({}, transition), hasClonedTransition = !0), typeof val == "string" ? transition[key1] = animations[val] : transition[key1] = val;
169
+ var { props, presence, style, componentState } = animationProps, animationKey = Array.isArray(props.animation) ? props.animation[0] : props.animation, isHydrating = componentState.unmounted === !0, disableAnimation = isHydrating || !animationKey, presenceContext = import_react.default.useContext(import_use_presence.PresenceContext), { dontAnimate, motiProps } = (0, import_react.useMemo)(function() {
170
+ var animate = {}, dontAnimate2 = {};
171
+ if (disableAnimation)
172
+ dontAnimate2 = style;
173
+ else {
174
+ var animateOnly = props.animateOnly;
175
+ for (var key in style) {
176
+ var value = style[key];
177
+ !onlyAnimateKeys[key] || value === "auto" || typeof value == "string" && value.startsWith("calc") || animateOnly && !animateOnly.includes(key) ? dontAnimate2[key] = value : animate[key] = value;
190
178
  }
191
- }
192
- var motiProps = {
193
- animate: isExiting || componentState.unmounted === !0 ? {} : styles,
194
- transition: componentState.unmounted ? {
179
+ }
180
+ componentState.unmounted === "should-enter" && (dontAnimate2 = style);
181
+ var styles = animate, isExiting = !!(presence != null && presence[1]), usePresenceValue = presence || void 0, transition = isHydrating ? {
182
+ type: "transition",
195
183
  duration: 0
196
- } : transition,
197
- usePresenceValue,
198
- presenceContext,
199
- exit: isExiting ? styles : void 0
200
- }, moti = (0, import_author.useMotify)(motiProps);
184
+ } : animations[animationKey], hasClonedTransition = !1;
185
+ if (Array.isArray(props.animation)) {
186
+ var config = props.animation[1];
187
+ if (config && typeof config == "object")
188
+ for (var key1 in config) {
189
+ var val = config[key1];
190
+ hasClonedTransition || (transition = Object.assign({}, transition), hasClonedTransition = !0), typeof val == "string" ? transition[key1] = animations[val] : transition[key1] = val;
191
+ }
192
+ }
193
+ return {
194
+ dontAnimate: dontAnimate2,
195
+ motiProps: {
196
+ animate: isExiting || componentState.unmounted === !0 ? {} : styles,
197
+ transition: componentState.unmounted ? {
198
+ duration: 0
199
+ } : transition,
200
+ usePresenceValue,
201
+ presenceContext,
202
+ exit: isExiting ? styles : void 0
203
+ }
204
+ };
205
+ }, [
206
+ animationKey,
207
+ componentState.unmounted,
208
+ JSON.stringify(style),
209
+ presenceContext
210
+ ]), moti = (0, import_author.useMotify)(motiProps);
201
211
  return process.env.NODE_ENV === "development" && props.debug && props.debug !== "profile" && console.info("useMotify(", JSON.stringify(motiProps, null, 2) + ")", {
202
212
  "componentState.unmounted": componentState.unmounted,
203
213
  motiProps,
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/Users/n8/tamagui/code/core/animations-moti/src/createAnimations.tsx"],
4
- "mappings": "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",
5
- "names": ["createTamaguiAnimatedComponent", "defaultTag", "isText", "Component", "Animated", "createAnimatedComponent", "forwardRef", "propsIn", "ref", "hooks", "forwardedRef", "animation", "tag", "propsRest", "hostRef", "useRef", "composedRefs", "useComposedRefs", "stateRef", "current", "host", "state", "useThemeWithState", "result", "getSplitStyles", "Text", "staticConfig", "View", "theme", "name", "unmounted", "isAnimated", "noClass", "props", "viewProps", "Element", "transformedProps", "usePropsTransform", "_jsx", "AnimatedView", "AnimatedText", "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", "fontSize", "fontWeight", "lineHeight", "letterSpacing", "createAnimations", "animations", "isWeb", "isReactNative", "usePresence", "ResetPresence", "useAnimatedNumber", "initial", "sharedValue", "useSharedValue", "React", "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", "presence", "style", "componentState", "animationKey", "Array", "isArray", "isHydrating", "disableAnimation", "animate", "dontAnimate", "animateOnly", "key", "startsWith", "includes", "styles", "isExiting", "Boolean", "presenceContext", "useContext", "PresenceContext", "usePresenceValue", "transition", "duration", "hasClonedTransition", "Object", "assign", "motiProps", "exit", "moti", "useMotify", "process", "env", "NODE_ENV", "console", "info", "JSON", "stringify"]
4
+ "mappings": "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",
5
+ "names": ["createTamaguiAnimatedComponent", "defaultTag", "isText", "Component", "Animated", "createAnimatedComponent", "forwardRef", "propsIn", "ref", "hooks", "forwardedRef", "animation", "tag", "propsRest", "hostRef", "useRef", "composedRefs", "useComposedRefs", "stateRef", "current", "host", "_", "state", "useThemeWithState", "result", "getSplitStyles", "Text", "staticConfig", "View", "theme", "name", "unmounted", "isAnimated", "noClass", "props", "viewProps", "Element", "transformedProps", "usePropsTransform", "_jsx", "AnimatedView", "AnimatedText", "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", "fontSize", "fontWeight", "lineHeight", "letterSpacing", "createAnimations", "animations", "isWeb", "isReactNative", "usePresence", "ResetPresence", "useAnimatedNumber", "initial", "sharedValue", "useSharedValue", "React", "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", "presence", "style", "componentState", "animationKey", "Array", "isArray", "isHydrating", "disableAnimation", "presenceContext", "useContext", "PresenceContext", "dontAnimate", "motiProps", "animate", "animateOnly", "key", "startsWith", "includes", "styles", "isExiting", "Boolean", "usePresenceValue", "transition", "duration", "hasClonedTransition", "Object", "assign", "exit", "JSON", "stringify", "moti", "useMotify", "process", "env", "NODE_ENV", "console", "info"]
6
6
  }
@@ -9,7 +9,7 @@ import {
9
9
  View
10
10
  } from "@tamagui/web";
11
11
  import { useMotify } from "moti/author";
12
- import React, { forwardRef, useRef } from "react";
12
+ import React, { forwardRef, useMemo, useRef } from "react";
13
13
  import Animated, {
14
14
  cancelAnimation,
15
15
  runOnJS,
@@ -30,7 +30,7 @@ function createTamaguiAnimatedComponent(defaultTag = "div") {
30
30
  return hostRef.current;
31
31
  }
32
32
  });
33
- const [{ state }] = useThemeWithState({}), props = getSplitStyles(
33
+ const [_, state] = useThemeWithState({}), props = getSplitStyles(
34
34
  propsRest,
35
35
  isText ? Text.staticConfig : View.staticConfig,
36
36
  state?.theme,
@@ -145,35 +145,39 @@ function createAnimations(animations) {
145
145
  return useAnimatedStyle(() => getStyle(derivedValue.value), [val, getStyle, derivedValue, instance]);
146
146
  },
147
147
  useAnimations: (animationProps) => {
148
- const { props, presence, style, componentState } = animationProps, animationKey = Array.isArray(props.animation) ? props.animation[0] : props.animation, isHydrating = componentState.unmounted === !0, disableAnimation = isHydrating || !animationKey;
149
- let animate = {}, dontAnimate = {};
150
- if (disableAnimation)
151
- dontAnimate = style;
152
- else {
153
- const animateOnly = props.animateOnly;
154
- for (const key in style) {
155
- const value = style[key];
156
- !onlyAnimateKeys[key] || value === "auto" || typeof value == "string" && value.startsWith("calc") || animateOnly && !animateOnly.includes(key) ? dontAnimate[key] = value : animate[key] = value;
148
+ const { props, presence, style, componentState } = animationProps, animationKey = Array.isArray(props.animation) ? props.animation[0] : props.animation, isHydrating = componentState.unmounted === !0, disableAnimation = isHydrating || !animationKey, presenceContext = React.useContext(PresenceContext), { dontAnimate, motiProps } = useMemo(() => {
149
+ let animate = {}, dontAnimate2 = {};
150
+ if (disableAnimation)
151
+ dontAnimate2 = style;
152
+ else {
153
+ const animateOnly = props.animateOnly;
154
+ for (const key in style) {
155
+ const value = style[key];
156
+ !onlyAnimateKeys[key] || value === "auto" || typeof value == "string" && value.startsWith("calc") || animateOnly && !animateOnly.includes(key) ? dontAnimate2[key] = value : animate[key] = value;
157
+ }
158
+ }
159
+ componentState.unmounted === "should-enter" && (dontAnimate2 = style);
160
+ const styles = animate, isExiting = !!presence?.[1], usePresenceValue = presence || void 0;
161
+ let transition = isHydrating ? { type: "transition", duration: 0 } : animations[animationKey], hasClonedTransition = !1;
162
+ if (Array.isArray(props.animation)) {
163
+ const config = props.animation[1];
164
+ if (config && typeof config == "object")
165
+ for (const key in config) {
166
+ const val = config[key];
167
+ hasClonedTransition || (transition = Object.assign({}, transition), hasClonedTransition = !0), typeof val == "string" ? transition[key] = animations[val] : transition[key] = val;
168
+ }
157
169
  }
158
- }
159
- componentState.unmounted === "should-enter" && (dontAnimate = style);
160
- const styles = animate, isExiting = !!presence?.[1], presenceContext = React.useContext(PresenceContext), usePresenceValue = presence || void 0;
161
- let transition = isHydrating ? { type: "transition", duration: 0 } : animations[animationKey], hasClonedTransition = !1;
162
- if (Array.isArray(props.animation)) {
163
- const config = props.animation[1];
164
- if (config && typeof config == "object")
165
- for (const key in config) {
166
- const val = config[key];
167
- hasClonedTransition || (transition = Object.assign({}, transition), hasClonedTransition = !0), typeof val == "string" ? transition[key] = animations[val] : transition[key] = val;
170
+ return {
171
+ dontAnimate: dontAnimate2,
172
+ motiProps: {
173
+ animate: isExiting || componentState.unmounted === !0 ? {} : styles,
174
+ transition: componentState.unmounted ? { duration: 0 } : transition,
175
+ usePresenceValue,
176
+ presenceContext,
177
+ exit: isExiting ? styles : void 0
168
178
  }
169
- }
170
- const motiProps = {
171
- animate: isExiting || componentState.unmounted === !0 ? {} : styles,
172
- transition: componentState.unmounted ? { duration: 0 } : transition,
173
- usePresenceValue,
174
- presenceContext,
175
- exit: isExiting ? styles : void 0
176
- }, moti = useMotify(motiProps);
179
+ };
180
+ }, [animationKey, componentState.unmounted, JSON.stringify(style), presenceContext]), moti = useMotify(motiProps);
177
181
  return process.env.NODE_ENV === "development" && props.debug && props.debug !== "profile" && console.info("useMotify(", JSON.stringify(motiProps, null, 2) + ")", {
178
182
  "componentState.unmounted": componentState.unmounted,
179
183
  motiProps,
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/createAnimations.tsx"],
4
- "mappings": "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",
5
- "names": []
4
+ "mappings": "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",
5
+ "names": ["dontAnimate"]
6
6
  }
@@ -1,7 +1,7 @@
1
1
  import { PresenceContext, ResetPresence, usePresence } from "@tamagui/use-presence";
2
2
  import { getSplitStyles, hooks, isWeb, Text, useComposedRefs, useThemeWithState, View } from "@tamagui/web";
3
3
  import { useMotify } from "moti/author";
4
- import React, { forwardRef, useRef } from "react";
4
+ import React, { forwardRef, useMemo, useRef } from "react";
5
5
  import Animated, { cancelAnimation, runOnJS, useAnimatedReaction, useAnimatedStyle, useDerivedValue, useSharedValue, withSpring, withTiming } from "react-native-reanimated";
6
6
  import { jsx } from "react/jsx-runtime";
7
7
  function createTamaguiAnimatedComponent(defaultTag = "div") {
@@ -21,9 +21,7 @@ function createTamaguiAnimatedComponent(defaultTag = "div") {
21
21
  return hostRef.current;
22
22
  }
23
23
  });
24
- const [{
25
- state
26
- }] = useThemeWithState({}),
24
+ const [_, state] = useThemeWithState({}),
27
25
  props = getSplitStyles(propsRest, isText ? Text.staticConfig : View.staticConfig, state?.theme, state?.name, {
28
26
  unmounted: !1
29
27
  }, {
@@ -143,42 +141,50 @@ function createAnimations(animations) {
143
141
  } = animationProps,
144
142
  animationKey = Array.isArray(props.animation) ? props.animation[0] : props.animation,
145
143
  isHydrating = componentState.unmounted === !0,
146
- disableAnimation = isHydrating || !animationKey;
147
- let animate = {},
148
- dontAnimate = {};
149
- if (disableAnimation) dontAnimate = style;else {
150
- const animateOnly = props.animateOnly;
151
- for (const key in style) {
152
- const value = style[key];
153
- !onlyAnimateKeys[key] || value === "auto" || typeof value == "string" && value.startsWith("calc") || animateOnly && !animateOnly.includes(key) ? dontAnimate[key] = value : animate[key] = value;
154
- }
155
- }
156
- componentState.unmounted === "should-enter" && (dontAnimate = style);
157
- const styles = animate,
158
- isExiting = !!presence?.[1],
144
+ disableAnimation = isHydrating || !animationKey,
159
145
  presenceContext = React.useContext(PresenceContext),
160
- usePresenceValue = presence || void 0;
161
- let transition = isHydrating ? {
162
- type: "transition",
163
- duration: 0
164
- } : animations[animationKey],
165
- hasClonedTransition = !1;
166
- if (Array.isArray(props.animation)) {
167
- const config = props.animation[1];
168
- if (config && typeof config == "object") for (const key in config) {
169
- const val = config[key];
170
- hasClonedTransition || (transition = Object.assign({}, transition), hasClonedTransition = !0), typeof val == "string" ? transition[key] = animations[val] : transition[key] = val;
171
- }
172
- }
173
- const motiProps = {
174
- animate: isExiting || componentState.unmounted === !0 ? {} : styles,
175
- transition: componentState.unmounted ? {
176
- duration: 0
177
- } : transition,
178
- usePresenceValue,
179
- presenceContext,
180
- exit: isExiting ? styles : void 0
181
- },
146
+ {
147
+ dontAnimate,
148
+ motiProps
149
+ } = useMemo(() => {
150
+ let animate = {},
151
+ dontAnimate2 = {};
152
+ if (disableAnimation) dontAnimate2 = style;else {
153
+ const animateOnly = props.animateOnly;
154
+ for (const key in style) {
155
+ const value = style[key];
156
+ !onlyAnimateKeys[key] || value === "auto" || typeof value == "string" && value.startsWith("calc") || animateOnly && !animateOnly.includes(key) ? dontAnimate2[key] = value : animate[key] = value;
157
+ }
158
+ }
159
+ componentState.unmounted === "should-enter" && (dontAnimate2 = style);
160
+ const styles = animate,
161
+ isExiting = !!presence?.[1],
162
+ usePresenceValue = presence || void 0;
163
+ let transition = isHydrating ? {
164
+ type: "transition",
165
+ duration: 0
166
+ } : animations[animationKey],
167
+ hasClonedTransition = !1;
168
+ if (Array.isArray(props.animation)) {
169
+ const config = props.animation[1];
170
+ if (config && typeof config == "object") for (const key in config) {
171
+ const val = config[key];
172
+ hasClonedTransition || (transition = Object.assign({}, transition), hasClonedTransition = !0), typeof val == "string" ? transition[key] = animations[val] : transition[key] = val;
173
+ }
174
+ }
175
+ return {
176
+ dontAnimate: dontAnimate2,
177
+ motiProps: {
178
+ animate: isExiting || componentState.unmounted === !0 ? {} : styles,
179
+ transition: componentState.unmounted ? {
180
+ duration: 0
181
+ } : transition,
182
+ usePresenceValue,
183
+ presenceContext,
184
+ exit: isExiting ? styles : void 0
185
+ }
186
+ };
187
+ }, [animationKey, componentState.unmounted, JSON.stringify(style), presenceContext]),
182
188
  moti = useMotify(motiProps);
183
189
  return process.env.NODE_ENV === "development" && props.debug && props.debug !== "profile" && console.info("useMotify(", JSON.stringify(motiProps, null, 2) + ")", {
184
190
  "componentState.unmounted": componentState.unmounted,
@@ -1 +1 @@
1
- {"version":3,"names":["PresenceContext","ResetPresence","usePresence","getSplitStyles","hooks","isWeb","Text","useComposedRefs","useThemeWithState","View","useMotify","React","forwardRef","useRef","Animated","cancelAnimation","runOnJS","useAnimatedReaction","useAnimatedStyle","useDerivedValue","useSharedValue","withSpring","withTiming","jsx","createTamaguiAnimatedComponent","defaultTag","isText","Component","createAnimatedComponent","propsIn","ref","forwardedRef","animation","tag","propsRest","hostRef","composedRefs","stateRef","current","host","state","props","staticConfig","theme","name","unmounted","isAnimated","noClass","viewProps","Element","transformedProps","usePropsTransform","acceptTagProp","AnimatedView","AnimatedText","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","fontSize","fontWeight","lineHeight","letterSpacing","createAnimations","animations","isReactNative","useAnimatedNumber","initial","sharedValue","useMemo","getInstance","getValue","value","setValue","next","config","type","onFinish","stop","useAnimatedNumberReaction","onValue","instance","prev","useAnimatedNumberStyle","val","getStyle","derivedValue","useAnimations","animationProps","presence","style","componentState","animationKey","Array","isArray","isHydrating","disableAnimation","animate","dontAnimate","animateOnly","key","startsWith","includes","styles","isExiting","presenceContext","useContext","usePresenceValue","transition","duration","hasClonedTransition","Object","assign","motiProps","exit","moti","process","env","NODE_ENV","debug","console","info","JSON","stringify"],"sources":["../../src/createAnimations.tsx"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["PresenceContext","ResetPresence","usePresence","getSplitStyles","hooks","isWeb","Text","useComposedRefs","useThemeWithState","View","useMotify","React","forwardRef","useMemo","useRef","Animated","cancelAnimation","runOnJS","useAnimatedReaction","useAnimatedStyle","useDerivedValue","useSharedValue","withSpring","withTiming","jsx","createTamaguiAnimatedComponent","defaultTag","isText","Component","createAnimatedComponent","propsIn","ref","forwardedRef","animation","tag","propsRest","hostRef","composedRefs","stateRef","current","host","_","state","props","staticConfig","theme","name","unmounted","isAnimated","noClass","viewProps","Element","transformedProps","usePropsTransform","acceptTagProp","AnimatedView","AnimatedText","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","fontSize","fontWeight","lineHeight","letterSpacing","createAnimations","animations","isReactNative","useAnimatedNumber","initial","sharedValue","getInstance","getValue","value","setValue","next","config","type","onFinish","stop","useAnimatedNumberReaction","onValue","instance","prev","useAnimatedNumberStyle","val","getStyle","derivedValue","useAnimations","animationProps","presence","style","componentState","animationKey","Array","isArray","isHydrating","disableAnimation","presenceContext","useContext","dontAnimate","motiProps","animate","dontAnimate2","animateOnly","key","startsWith","includes","styles","isExiting","usePresenceValue","transition","duration","hasClonedTransition","Object","assign","exit","JSON","stringify","moti","process","env","NODE_ENV","debug","console","info"],"sources":["../../src/createAnimations.tsx"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -2,7 +2,7 @@ import { jsx as _jsx } from "react/jsx-runtime";
2
2
  import { PresenceContext, ResetPresence, usePresence } from "@tamagui/use-presence";
3
3
  import { getSplitStyles, hooks, isWeb, Text, useComposedRefs, useThemeWithState, View } from "@tamagui/web";
4
4
  import { useMotify } from "moti/author";
5
- import React, { forwardRef, useRef } from "react";
5
+ import React, { forwardRef, useMemo, useRef } from "react";
6
6
  import Animated, { cancelAnimation, runOnJS, useAnimatedReaction, useAnimatedStyle, useDerivedValue, useSharedValue, withSpring, withTiming } from "react-native-reanimated";
7
7
  function createTamaguiAnimatedComponent() {
8
8
  var defaultTag = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : "div", isText = defaultTag === "span", Component = Animated.createAnimatedComponent(/* @__PURE__ */ forwardRef(function(propsIn, ref) {
@@ -12,7 +12,7 @@ function createTamaguiAnimatedComponent() {
12
12
  return hostRef.current;
13
13
  }
14
14
  });
15
- var [{ state }] = useThemeWithState({}), result = getSplitStyles(propsRest, isText ? Text.staticConfig : View.staticConfig, state?.theme, state?.name, {
15
+ var [_, state] = useThemeWithState({}), result = getSplitStyles(propsRest, isText ? Text.staticConfig : View.staticConfig, state?.theme, state?.name, {
16
16
  unmounted: !1
17
17
  }, {
18
18
  isAnimated: !1,
@@ -143,38 +143,48 @@ function createAnimations(animations) {
143
143
  );
144
144
  },
145
145
  useAnimations: function(animationProps) {
146
- var { props, presence, style, componentState } = animationProps, animationKey = Array.isArray(props.animation) ? props.animation[0] : props.animation, isHydrating = componentState.unmounted === !0, disableAnimation = isHydrating || !animationKey, animate = {}, dontAnimate = {};
147
- if (disableAnimation)
148
- dontAnimate = style;
149
- else {
150
- var animateOnly = props.animateOnly;
151
- for (var key in style) {
152
- var value = style[key];
153
- !onlyAnimateKeys[key] || value === "auto" || typeof value == "string" && value.startsWith("calc") || animateOnly && !animateOnly.includes(key) ? dontAnimate[key] = value : animate[key] = value;
154
- }
155
- }
156
- componentState.unmounted === "should-enter" && (dontAnimate = style);
157
- var styles = animate, isExiting = !!presence?.[1], presenceContext = React.useContext(PresenceContext), usePresenceValue = presence || void 0, transition = isHydrating ? {
158
- type: "transition",
159
- duration: 0
160
- } : animations[animationKey], hasClonedTransition = !1;
161
- if (Array.isArray(props.animation)) {
162
- var config = props.animation[1];
163
- if (config && typeof config == "object")
164
- for (var key1 in config) {
165
- var val = config[key1];
166
- hasClonedTransition || (transition = Object.assign({}, transition), hasClonedTransition = !0), typeof val == "string" ? transition[key1] = animations[val] : transition[key1] = val;
146
+ var { props, presence, style, componentState } = animationProps, animationKey = Array.isArray(props.animation) ? props.animation[0] : props.animation, isHydrating = componentState.unmounted === !0, disableAnimation = isHydrating || !animationKey, presenceContext = React.useContext(PresenceContext), { dontAnimate, motiProps } = useMemo(function() {
147
+ var animate = {}, dontAnimate2 = {};
148
+ if (disableAnimation)
149
+ dontAnimate2 = style;
150
+ else {
151
+ var animateOnly = props.animateOnly;
152
+ for (var key in style) {
153
+ var value = style[key];
154
+ !onlyAnimateKeys[key] || value === "auto" || typeof value == "string" && value.startsWith("calc") || animateOnly && !animateOnly.includes(key) ? dontAnimate2[key] = value : animate[key] = value;
167
155
  }
168
- }
169
- var motiProps = {
170
- animate: isExiting || componentState.unmounted === !0 ? {} : styles,
171
- transition: componentState.unmounted ? {
156
+ }
157
+ componentState.unmounted === "should-enter" && (dontAnimate2 = style);
158
+ var styles = animate, isExiting = !!presence?.[1], usePresenceValue = presence || void 0, transition = isHydrating ? {
159
+ type: "transition",
172
160
  duration: 0
173
- } : transition,
174
- usePresenceValue,
175
- presenceContext,
176
- exit: isExiting ? styles : void 0
177
- }, moti = useMotify(motiProps);
161
+ } : animations[animationKey], hasClonedTransition = !1;
162
+ if (Array.isArray(props.animation)) {
163
+ var config = props.animation[1];
164
+ if (config && typeof config == "object")
165
+ for (var key1 in config) {
166
+ var val = config[key1];
167
+ hasClonedTransition || (transition = Object.assign({}, transition), hasClonedTransition = !0), typeof val == "string" ? transition[key1] = animations[val] : transition[key1] = val;
168
+ }
169
+ }
170
+ return {
171
+ dontAnimate: dontAnimate2,
172
+ motiProps: {
173
+ animate: isExiting || componentState.unmounted === !0 ? {} : styles,
174
+ transition: componentState.unmounted ? {
175
+ duration: 0
176
+ } : transition,
177
+ usePresenceValue,
178
+ presenceContext,
179
+ exit: isExiting ? styles : void 0
180
+ }
181
+ };
182
+ }, [
183
+ animationKey,
184
+ componentState.unmounted,
185
+ JSON.stringify(style),
186
+ presenceContext
187
+ ]), moti = useMotify(motiProps);
178
188
  return process.env.NODE_ENV === "development" && props.debug && props.debug !== "profile" && console.info("useMotify(", JSON.stringify(motiProps, null, 2) + ")", {
179
189
  "componentState.unmounted": componentState.unmounted,
180
190
  motiProps,
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/Users/n8/tamagui/code/core/animations-moti/src/createAnimations.tsx"],
4
- "mappings": ";AAAA,SAASA,iBAAiBC,eAAeC,mBAAmB;AAC5D,SACEC,gBACAC,OACAC,OACAC,MACAC,iBACAC,mBACAC,YAGK;AAEP,SAASC,iBAAiB;AAE1B,OAAOC,SAASC,YAAYC,cAAc;AAG1C,OAAOC,YACLC,iBACAC,SACAC,qBACAC,kBACAC,iBACAC,gBACAC,YACAC,kBACK;AAOP,SAASC,iCAAAA;MAA+BC,aAAAA,UAAAA,SAAAA,KAAAA,UAAAA,CAAAA,MAAAA,SAAAA,UAAAA,CAAAA,IAAa,OAC7CC,SAASD,eAAe,QAExBE,YAAYZ,SAASa,wBACzBf,2BAAW,SAACgB,SAAcC,KAAAA;QAgCCzB,0BA/BnB,EAAE0B,cAAcC,WAAWC,MAAMR,YAAY,GAAGS,UAAAA,IAAcL,SAC9DM,UAAUrB,OAAAA,GACVsB,eAAe5B,gBAAgBuB,cAAcD,KAAKK,OAAAA,GAClDE,WAAWvB,OAAAA;AACjB,IAAKuB,SAASC,YACZD,SAASC,UAAU;MACjB,IAAIC,OAAO;AACT,eAAOJ,QAAQG;MACjB;IACF;AAGF,QAAM,CAAC,EAAEE,MAAK,CAAE,IAAI/B,kBAAkB,CAAC,CAAA,GAGjCgC,SAASrC,eACb8B,WACAR,SAASnB,KAAKmC,eAAehC,KAAKgC,cAClCF,OAAOG,OACPH,OAAOI,MACP;MACEC,WAAW;IACb,GACA;MACEC,YAAY;MACZC,SAAS;IACX,CAAA,GAGIC,QAAQP,OAAOQ,WACfC,UAAUjB,KACVkB,oBAAmB9C,2BAAAA,MAAM+C,uBAAiB,QAAvB/C,6BAAAA,SAAAA,SAAAA,yBAAAA,KAAAA,OAA0B4B,KAAKe,OAAOX,UAAU,EAAA;AAEzE,WAAO,qBAACa,SAAAA;MAAS,GAAGC;MAAkBrB,KAAKM;;EAC7C,CAAA,CAAA;AAEFT,mBAAU,gBAAmB,IACtBA;AACT;AAEA,IAAM0B,eAAe7B,+BAA+B,KAAA,GAC9C8B,eAAe9B,+BAA+B,MAAA,GAU9C+B,kBAAgF;EACpFC,WAAW;EACXC,SAAS;EACTC,QAAQ;EACRC,OAAO;EACPC,iBAAiB;EACjBC,aAAa;EACbC,iBAAiB;EACjBC,kBAAkB;EAClBC,gBAAgB;EAChBC,mBAAmB;EACnBC,cAAc;EACdC,qBAAqB;EACrBC,sBAAsB;EACtBC,wBAAwB;EACxBC,yBAAyB;EACzBC,iBAAiB;EACjBC,kBAAkB;EAClBC,gBAAgB;EAChBC,mBAAmB;EACnBC,OAAO;EACPC,MAAM;EACNC,OAAO;EACPC,KAAK;EACLC,QAAQ;EACRC,UAAU;EACVC,YAAY;EACZC,YAAY;EACZC,eAAe;AACjB;AAEO,SAASC,iBACdC,YAAa;AAEb,SAAO;IACL3E,MAAMJ,QAAQ+C,eAAetC,SAASL;IACtCH,MAAMD,QAAQgD,eAAevC,SAASR;;;IAGtC+E,eAAe;IACfD;IACAlF;IACAD;IAEAqF,kBAAkBC,SAAO;AACvB,UAAMC,cAAcpE,eAAemE,OAAAA;AAEnC,aAAO5E,MAAM8E,QACX,WAAA;eAAO;UACLC,cAAAA;AACE;AACA,mBAAOF;UACT;UACAG,WAAAA;AACE;AACA,mBAAOH,YAAYI;UACrB;UACAC,SAASC,MAAI;AACX;gBADaC,SAAAA,UAAAA,SAAAA,KAAAA,UAAAA,CAAAA,MAAAA,SAAAA,UAAAA,CAAAA,IAAS;cAAEC,MAAM;YAAS,GAAGC,WAAAA,UAAAA,SAAAA,IAAAA,UAAAA,CAAAA,IAAAA;AAE1C,YAAIF,OAAOC,SAAS,YAClBR,YAAYI,QAAQE,MACpBG,WAAAA,KACSF,OAAOC,SAAS,WACzBR,YAAYI,QAAQvE,WAClByE,MACAC,QACAE,WACI,WAAA;AACE;AACAjF,sBAAQiF,QAAAA,EAAAA;YACV,IACAC,MAAAA,IAGNV,YAAYI,QAAQtE,WAClBwE,MACAC,QACAE,WACI,WAAA;AACE;AACAjF,sBAAQiF,QAAAA,EAAAA;YACV,IACAC,MAAAA;UAGV;UACAC,OAAAA;AACE;AACApF,4BAAgByE,WAAAA;UAClB;QACF;SACA;QAACA;OAAY;IAEjB;IAEAY,0BAA0B,OAAWC,SAAO;UAAlB,EAAET,MAAK,IAAP,OAClBU,WAAWV,MAAMF,YAAW;AAClC,aAAOzE;QACL,WAAA;AACE,iBAAOqF,SAASV;QAClB;QACA,SAACE,MAAMS,MAAAA;AACL,UAAIA,SAAST,QAGX9E,QAAQqF,OAAAA,EAASP,IAAAA;QAErB;;QAEA;UAACO;UAASC;;MAAS;IAEvB;;;;IAKAE,uBAAuBC,KAAKC,UAAQ;AAClC,UAAMJ,WAAWG,IAAIf,YAAW,GAG1BiB,eAAexF;QAAgB,WAAA;AACnC,iBAAOmF,SAASV;QAElB;;QAAG;UAACU;UAAUI;;MAAS;AAEvB,aAAOxF;QAAiB,WAAA;AACtB,iBAAOwF,SAASC,aAAaf,KAAK;QAEpC;;QAAG;UAACa;UAAKC;UAAUC;UAAcL;;MAAS;IAC5C;IAEAM,eAAe,SAACC,gBAAAA;AACd,UAAM,EAAE9D,OAAO+D,UAAUC,OAAOC,eAAc,IAAKH,gBAC7CI,eAAeC,MAAMC,QAAQpE,MAAMhB,SAAS,IAC9CgB,MAAMhB,UAAU,CAAA,IAChBgB,MAAMhB,WAEJqF,cAAcJ,eAAepE,cAAc,IAC3CyE,mBAAmBD,eAAe,CAACH,cAErCK,UAAU,CAAC,GACXC,cAAc,CAAC;AAEnB,UAAIF;AACFE,sBAAcR;WACT;AACL,YAAMS,cAAczE,MAAMyE;AAC1B,iBAAWC,OAAOV,OAAO;AACvB,cAAMnB,QAAQmB,MAAMU,GAAAA;AACpB,UACE,CAACnE,gBAAgBmE,GAAAA,KACjB7B,UAAU,UACT,OAAOA,SAAU,YAAYA,MAAM8B,WAAW,MAAA,KAC9CF,eAAe,CAACA,YAAYG,SAASF,GAAAA,IAEtCF,YAAYE,GAAAA,IAAO7B,QAEnB0B,QAAQG,GAAAA,IAAO7B;QAEnB;MACF;AAGA,MAAIoB,eAAepE,cAAc,mBAC/B2E,cAAcR;AAGhB,UAAMa,SAASN,SACTO,YAAYC,EAAQhB,WAAW,CAAA,GAC/BiB,kBAAkBpH,MAAMqH,WAAWhI,eAAAA,GACnCiI,mBAAoBnB,YAAYZ,QAKlCgC,aAAad,cACb;QAAEpB,MAAM;QAAcmC,UAAU;MAAE,IACjC/C,WAAW6B,YAAAA,GAEZmB,sBAAsB;AAE1B,UAAIlB,MAAMC,QAAQpE,MAAMhB,SAAS,GAAG;AAClC,YAAMgE,SAAShD,MAAMhB,UAAU,CAAA;AAC/B,YAAIgE,UAAU,OAAOA,UAAW;AAC9B,mBAAW0B,QAAO1B,QAAQ;AACxB,gBAAMU,MAAMV,OAAO0B,IAAAA;AAInB,YAAKW,wBACHF,aAAaG,OAAOC,OAAO,CAAC,GAAGJ,UAAAA,GAC/BE,sBAAsB,KAIpB,OAAO3B,OAAQ,WACjByB,WAAWT,IAAAA,IAAOrC,WAAWqB,GAAAA,IAE7ByB,WAAWT,IAAAA,IAAOhB;UAEtB;MAEJ;AAEA,UAAM8B,YAAY;QAChBjB,SAASO,aAAab,eAAepE,cAAc,KAAO,CAAC,IAAIgF;QAC/DM,YAAYlB,eAAepE,YAAY;UAAEuF,UAAU;QAAE,IAAID;QACzDD;QACAF;QACAS,MAAMX,YAAYD,SAAS1B;MAC7B,GAEMuC,OAAO/H,UAAU6H,SAAAA;AAEvB,aACEG,QAAQC,IAAIC,aAAa,iBACzB7F,MAAM,SACNA,MAAM,UAAa,aAEnB8F,QAAQC,KAAK,cAAcC,KAAKC,UAAUT,WAAW,MAAM,CAAA,IAAK,KAAK;QACnE,4BAA4BvB,eAAepE;QAC3C2F;QACAE;QACA1B,OAAO;UAACQ;UAAakB,KAAK1B;;MAC5B,CAAA,GAGK;QACLA,OAAO;UAACQ;UAAakB,KAAK1B;;MAC5B;IACF;EACF;AACF;",
5
- "names": ["PresenceContext", "ResetPresence", "usePresence", "getSplitStyles", "hooks", "isWeb", "Text", "useComposedRefs", "useThemeWithState", "View", "useMotify", "React", "forwardRef", "useRef", "Animated", "cancelAnimation", "runOnJS", "useAnimatedReaction", "useAnimatedStyle", "useDerivedValue", "useSharedValue", "withSpring", "withTiming", "createTamaguiAnimatedComponent", "defaultTag", "isText", "Component", "createAnimatedComponent", "propsIn", "ref", "forwardedRef", "animation", "tag", "propsRest", "hostRef", "composedRefs", "stateRef", "current", "host", "state", "result", "staticConfig", "theme", "name", "unmounted", "isAnimated", "noClass", "props", "viewProps", "Element", "transformedProps", "usePropsTransform", "AnimatedView", "AnimatedText", "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", "fontSize", "fontWeight", "lineHeight", "letterSpacing", "createAnimations", "animations", "isReactNative", "useAnimatedNumber", "initial", "sharedValue", "useMemo", "getInstance", "getValue", "value", "setValue", "next", "config", "type", "onFinish", "undefined", "stop", "useAnimatedNumberReaction", "onValue", "instance", "prev", "useAnimatedNumberStyle", "val", "getStyle", "derivedValue", "useAnimations", "animationProps", "presence", "style", "componentState", "animationKey", "Array", "isArray", "isHydrating", "disableAnimation", "animate", "dontAnimate", "animateOnly", "key", "startsWith", "includes", "styles", "isExiting", "Boolean", "presenceContext", "useContext", "usePresenceValue", "transition", "duration", "hasClonedTransition", "Object", "assign", "motiProps", "exit", "moti", "process", "env", "NODE_ENV", "console", "info", "JSON", "stringify"]
4
+ "mappings": "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",
5
+ "names": ["PresenceContext", "ResetPresence", "usePresence", "getSplitStyles", "hooks", "isWeb", "Text", "useComposedRefs", "useThemeWithState", "View", "useMotify", "React", "forwardRef", "useMemo", "useRef", "Animated", "cancelAnimation", "runOnJS", "useAnimatedReaction", "useAnimatedStyle", "useDerivedValue", "useSharedValue", "withSpring", "withTiming", "createTamaguiAnimatedComponent", "defaultTag", "isText", "Component", "createAnimatedComponent", "propsIn", "ref", "forwardedRef", "animation", "tag", "propsRest", "hostRef", "composedRefs", "stateRef", "current", "host", "_", "state", "result", "staticConfig", "theme", "name", "unmounted", "isAnimated", "noClass", "props", "viewProps", "Element", "transformedProps", "usePropsTransform", "AnimatedView", "AnimatedText", "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", "fontSize", "fontWeight", "lineHeight", "letterSpacing", "createAnimations", "animations", "isReactNative", "useAnimatedNumber", "initial", "sharedValue", "getInstance", "getValue", "value", "setValue", "next", "config", "type", "onFinish", "undefined", "stop", "useAnimatedNumberReaction", "onValue", "instance", "prev", "useAnimatedNumberStyle", "val", "getStyle", "derivedValue", "useAnimations", "animationProps", "presence", "style", "componentState", "animationKey", "Array", "isArray", "isHydrating", "disableAnimation", "presenceContext", "useContext", "dontAnimate", "motiProps", "animate", "animateOnly", "key", "startsWith", "includes", "styles", "isExiting", "Boolean", "usePresenceValue", "transition", "duration", "hasClonedTransition", "Object", "assign", "exit", "JSON", "stringify", "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.123.17",
3
+ "version": "1.124.0",
4
4
  "source": "src/index.ts",
5
5
  "license": "MIT",
6
6
  "types": "./types/index.d.ts",
@@ -29,12 +29,12 @@
29
29
  }
30
30
  },
31
31
  "dependencies": {
32
- "@tamagui/use-presence": "1.123.17",
33
- "@tamagui/web": "1.123.17",
32
+ "@tamagui/use-presence": "1.124.0",
33
+ "@tamagui/web": "1.124.0",
34
34
  "moti": "^0.29.0"
35
35
  },
36
36
  "devDependencies": {
37
- "@tamagui/build": "1.123.17",
37
+ "@tamagui/build": "1.124.0",
38
38
  "react": "*",
39
39
  "react-native-reanimated": "~3.16.1"
40
40
  },
@@ -13,7 +13,7 @@ import {
13
13
  import type { TransitionConfig } from 'moti'
14
14
  import { useMotify } from 'moti/author'
15
15
  import type { CSSProperties } from 'react'
16
- import React, { forwardRef, useRef } from 'react'
16
+ import React, { forwardRef, useMemo, useRef } from 'react'
17
17
  import type { TextStyle } from 'react-native'
18
18
  import type { SharedValue } from 'react-native-reanimated'
19
19
  import Animated, {
@@ -49,7 +49,7 @@ function createTamaguiAnimatedComponent(defaultTag = 'div') {
49
49
  }
50
50
  }
51
51
 
52
- const [{ state }] = useThemeWithState({})
52
+ const [_, state] = useThemeWithState({})
53
53
 
54
54
  // get styles but only inline style
55
55
  const result = getSplitStyles(
@@ -227,78 +227,85 @@ export function createAnimations<A extends Record<string, TransitionConfig>>(
227
227
 
228
228
  const isHydrating = componentState.unmounted === true
229
229
  const disableAnimation = isHydrating || !animationKey
230
+ const presenceContext = React.useContext(PresenceContext)
230
231
 
231
- let animate = {}
232
- let dontAnimate = {}
233
-
234
- if (disableAnimation) {
235
- dontAnimate = style
236
- } else {
237
- const animateOnly = props.animateOnly as string[]
238
- for (const key in style) {
239
- const value = style[key]
240
- if (
241
- !onlyAnimateKeys[key] ||
242
- value === 'auto' ||
243
- (typeof value === 'string' && value.startsWith('calc')) ||
244
- (animateOnly && !animateOnly.includes(key))
245
- ) {
246
- dontAnimate[key] = value
247
- } else {
248
- animate[key] = value
232
+ // this memo is very important for performance, there's a big cost to
233
+ // updating these values every render
234
+ const { dontAnimate, motiProps } = useMemo(() => {
235
+ let animate = {}
236
+ let dontAnimate = {}
237
+
238
+ if (disableAnimation) {
239
+ dontAnimate = style
240
+ } else {
241
+ const animateOnly = props.animateOnly as string[]
242
+ for (const key in style) {
243
+ const value = style[key]
244
+ if (
245
+ !onlyAnimateKeys[key] ||
246
+ value === 'auto' ||
247
+ (typeof value === 'string' && value.startsWith('calc')) ||
248
+ (animateOnly && !animateOnly.includes(key))
249
+ ) {
250
+ dontAnimate[key] = value
251
+ } else {
252
+ animate[key] = value
253
+ }
249
254
  }
250
255
  }
251
- }
252
-
253
- // if we don't do this moti seems to flicker a frame before applying animation
254
- if (componentState.unmounted === 'should-enter') {
255
- dontAnimate = style
256
- }
257
-
258
- const styles = animate
259
- const isExiting = Boolean(presence?.[1])
260
- const presenceContext = React.useContext(PresenceContext)
261
- const usePresenceValue = (presence || undefined) as any
262
-
263
- type UseMotiProps = Parameters<typeof useMotify>[0]
264
256
 
265
- // TODO moti is giving us type troubles, but this should work
266
- let transition = isHydrating
267
- ? { type: 'transition', duration: 0 }
268
- : (animations[animationKey as keyof typeof animations] as any)
269
-
270
- let hasClonedTransition = false
271
-
272
- if (Array.isArray(props.animation)) {
273
- const config = props.animation[1]
274
- if (config && typeof config === 'object') {
275
- for (const key in config) {
276
- const val = config[key]
277
-
278
- // performance - this seems to have (strangely) huge performance effect in uniswap
279
- // so instead of cloning up front, we clone only when we absolutely have to
280
- if (!hasClonedTransition) {
281
- transition = Object.assign({}, transition)
282
- hasClonedTransition = true
283
- }
257
+ // if we don't do this moti seems to flicker a frame before applying animation
258
+ if (componentState.unmounted === 'should-enter') {
259
+ dontAnimate = style
260
+ }
284
261
 
285
- // referencing a pre-defined config
286
- if (typeof val === 'string') {
287
- transition[key] = animations[val]
288
- } else {
289
- transition[key] = val
262
+ const styles = animate
263
+ const isExiting = Boolean(presence?.[1])
264
+ const usePresenceValue = (presence || undefined) as any
265
+
266
+ type UseMotiProps = Parameters<typeof useMotify>[0]
267
+
268
+ // TODO moti is giving us type troubles, but this should work
269
+ let transition = isHydrating
270
+ ? { type: 'transition', duration: 0 }
271
+ : (animations[animationKey as keyof typeof animations] as any)
272
+
273
+ let hasClonedTransition = false
274
+
275
+ if (Array.isArray(props.animation)) {
276
+ const config = props.animation[1]
277
+ if (config && typeof config === 'object') {
278
+ for (const key in config) {
279
+ const val = config[key]
280
+
281
+ // performance - this seems to have (strangely) huge performance effect in uniswap
282
+ // so instead of cloning up front, we clone only when we absolutely have to
283
+ if (!hasClonedTransition) {
284
+ transition = Object.assign({}, transition)
285
+ hasClonedTransition = true
286
+ }
287
+
288
+ // referencing a pre-defined config
289
+ if (typeof val === 'string') {
290
+ transition[key] = animations[val]
291
+ } else {
292
+ transition[key] = val
293
+ }
290
294
  }
291
295
  }
292
296
  }
293
- }
294
297
 
295
- const motiProps = {
296
- animate: isExiting || componentState.unmounted === true ? {} : styles,
297
- transition: componentState.unmounted ? { duration: 0 } : transition,
298
- usePresenceValue,
299
- presenceContext,
300
- exit: isExiting ? styles : undefined,
301
- } satisfies UseMotiProps
298
+ return {
299
+ dontAnimate,
300
+ motiProps: {
301
+ animate: isExiting || componentState.unmounted === true ? {} : styles,
302
+ transition: componentState.unmounted ? { duration: 0 } : transition,
303
+ usePresenceValue,
304
+ presenceContext,
305
+ exit: isExiting ? styles : undefined,
306
+ } satisfies UseMotiProps,
307
+ }
308
+ }, [animationKey, componentState.unmounted, JSON.stringify(style), presenceContext])
302
309
 
303
310
  const moti = useMotify(motiProps)
304
311
 
@@ -7,7 +7,7 @@
7
7
  "src/createAnimations.tsx"
8
8
  ],
9
9
  "sourcesContent": [
10
- "import { PresenceContext, ResetPresence, usePresence } from '@tamagui/use-presence'\nimport {\n getSplitStyles,\n hooks,\n isWeb,\n Text,\n useComposedRefs,\n useThemeWithState,\n View,\n type AnimationDriver,\n type UniversalAnimatedNumber,\n} from '@tamagui/web'\nimport type { TransitionConfig } from 'moti'\nimport { useMotify } from 'moti/author'\nimport type { CSSProperties } from 'react'\nimport React, { forwardRef, useRef } from 'react'\nimport type { TextStyle } from 'react-native'\nimport type { SharedValue } from 'react-native-reanimated'\nimport Animated, {\n cancelAnimation,\n runOnJS,\n useAnimatedReaction,\n useAnimatedStyle,\n useDerivedValue,\n useSharedValue,\n withSpring,\n withTiming,\n} from 'react-native-reanimated'\n\ntype ReanimatedAnimatedNumber = SharedValue<number>\n\n// this is our own custom reanimated animated component so we can allow data- attributes, className etc\n// this should ultimately be merged with react-native-web-lite\n\nfunction createTamaguiAnimatedComponent(defaultTag = 'div') {\n const isText = defaultTag === 'span'\n\n const Component = Animated.createAnimatedComponent(\n forwardRef((propsIn: any, ref) => {\n const { forwardedRef, animation, tag = defaultTag, ...propsRest } = propsIn\n const hostRef = useRef()\n const composedRefs = useComposedRefs(forwardedRef, ref, hostRef)\n const stateRef = useRef<any>()\n if (!stateRef.current) {\n stateRef.current = {\n get host() {\n return hostRef.current\n },\n }\n }\n\n const [{ state }] = useThemeWithState({})\n\n // get styles but only inline style\n const result = getSplitStyles(\n propsRest,\n isText ? Text.staticConfig : View.staticConfig,\n state?.theme!,\n state?.name!,\n {\n unmounted: false,\n } as any,\n {\n isAnimated: false,\n noClass: true,\n }\n )\n\n const props = result.viewProps\n const Element = tag\n const transformedProps = hooks.usePropsTransform?.(tag, props, stateRef, false)\n\n return <Element {...transformedProps} ref={composedRefs} />\n })\n )\n Component['acceptTagProp'] = true\n return Component\n}\n\nconst AnimatedView = createTamaguiAnimatedComponent('div')\nconst AnimatedText = createTamaguiAnimatedComponent('span')\n\n// const AnimatedView = styled(View, {\n// disableClassName: true,\n// })\n\n// const AnimatedText = styled(Text, {\n// disableClassName: true,\n// })\n\nconst onlyAnimateKeys: { [key in keyof TextStyle | keyof CSSProperties]?: boolean } = {\n transform: true,\n opacity: true,\n height: true,\n width: true,\n backgroundColor: true,\n borderColor: true,\n borderLeftColor: true,\n borderRightColor: true,\n borderTopColor: true,\n borderBottomColor: true,\n borderRadius: true,\n borderTopLeftRadius: true,\n borderTopRightRadius: true,\n borderBottomLeftRadius: true,\n borderBottomRightRadius: true,\n borderLeftWidth: true,\n borderRightWidth: true,\n borderTopWidth: true,\n borderBottomWidth: true,\n color: true,\n left: true,\n right: true,\n top: true,\n bottom: true,\n fontSize: true,\n fontWeight: true,\n lineHeight: true,\n letterSpacing: true,\n}\n\nexport function createAnimations<A extends Record<string, TransitionConfig>>(\n animations: A\n): AnimationDriver<A> {\n return {\n View: isWeb ? AnimatedView : Animated.View,\n Text: isWeb ? AnimatedText : Animated.Text,\n // View: Animated.View,\n // Text: Animated.Text,\n isReactNative: true,\n animations,\n usePresence,\n ResetPresence,\n\n useAnimatedNumber(initial): UniversalAnimatedNumber<ReanimatedAnimatedNumber> {\n const sharedValue = useSharedValue(initial)\n\n return React.useMemo(\n () => ({\n getInstance() {\n 'worklet'\n return sharedValue\n },\n getValue() {\n 'worklet'\n return sharedValue.value\n },\n setValue(next, config = { type: 'spring' }, onFinish) {\n 'worklet'\n if (config.type === 'direct') {\n sharedValue.value = next\n onFinish?.()\n } else if (config.type === 'spring') {\n sharedValue.value = withSpring(\n next,\n config,\n onFinish\n ? () => {\n 'worklet'\n runOnJS(onFinish)()\n }\n : undefined\n )\n } else {\n sharedValue.value = withTiming(\n next,\n config,\n onFinish\n ? () => {\n 'worklet'\n runOnJS(onFinish)()\n }\n : undefined\n )\n }\n },\n stop() {\n 'worklet'\n cancelAnimation(sharedValue)\n },\n }),\n [sharedValue]\n )\n },\n\n useAnimatedNumberReaction({ value }, onValue) {\n const instance = value.getInstance()\n return useAnimatedReaction(\n () => {\n return instance.value\n },\n (next, prev) => {\n if (prev !== next) {\n // @nate what is the point of this hook? is this necessary?\n // without runOnJS, onValue would need to be a worklet\n runOnJS(onValue)(next)\n }\n },\n // dependency array is very important here\n [onValue, instance]\n )\n },\n\n /**\n * `getStyle` must be a worklet\n */\n useAnimatedNumberStyle(val, getStyle) {\n const instance = val.getInstance()\n\n // this seems wrong but it works\n const derivedValue = useDerivedValue(() => {\n return instance.value\n // dependency array is very important here\n }, [instance, getStyle])\n\n return useAnimatedStyle(() => {\n return getStyle(derivedValue.value)\n // dependency array is very important here\n }, [val, getStyle, derivedValue, instance])\n },\n\n useAnimations: (animationProps) => {\n const { props, presence, style, componentState } = animationProps\n const animationKey = Array.isArray(props.animation)\n ? props.animation[0]\n : props.animation\n\n const isHydrating = componentState.unmounted === true\n const disableAnimation = isHydrating || !animationKey\n\n let animate = {}\n let dontAnimate = {}\n\n if (disableAnimation) {\n dontAnimate = style\n } else {\n const animateOnly = props.animateOnly as string[]\n for (const key in style) {\n const value = style[key]\n if (\n !onlyAnimateKeys[key] ||\n value === 'auto' ||\n (typeof value === 'string' && value.startsWith('calc')) ||\n (animateOnly && !animateOnly.includes(key))\n ) {\n dontAnimate[key] = value\n } else {\n animate[key] = value\n }\n }\n }\n\n // if we don't do this moti seems to flicker a frame before applying animation\n if (componentState.unmounted === 'should-enter') {\n dontAnimate = style\n }\n\n const styles = animate\n const isExiting = Boolean(presence?.[1])\n const presenceContext = React.useContext(PresenceContext)\n const usePresenceValue = (presence || undefined) as any\n\n type UseMotiProps = Parameters<typeof useMotify>[0]\n\n // TODO moti is giving us type troubles, but this should work\n let transition = isHydrating\n ? { type: 'transition', duration: 0 }\n : (animations[animationKey as keyof typeof animations] as any)\n\n let hasClonedTransition = false\n\n if (Array.isArray(props.animation)) {\n const config = props.animation[1]\n if (config && typeof config === 'object') {\n for (const key in config) {\n const val = config[key]\n\n // performance - this seems to have (strangely) huge performance effect in uniswap\n // so instead of cloning up front, we clone only when we absolutely have to\n if (!hasClonedTransition) {\n transition = Object.assign({}, transition)\n hasClonedTransition = true\n }\n\n // referencing a pre-defined config\n if (typeof val === 'string') {\n transition[key] = animations[val]\n } else {\n transition[key] = val\n }\n }\n }\n }\n\n const motiProps = {\n animate: isExiting || componentState.unmounted === true ? {} : styles,\n transition: componentState.unmounted ? { duration: 0 } : transition,\n usePresenceValue,\n presenceContext,\n exit: isExiting ? styles : undefined,\n } satisfies UseMotiProps\n\n const moti = useMotify(motiProps)\n\n if (\n process.env.NODE_ENV === 'development' &&\n props['debug'] &&\n props['debug'] !== 'profile'\n ) {\n console.info(`useMotify(`, JSON.stringify(motiProps, null, 2) + ')', {\n 'componentState.unmounted': componentState.unmounted,\n motiProps,\n moti,\n style: [dontAnimate, moti.style],\n })\n }\n\n return {\n style: [dontAnimate, moti.style],\n }\n },\n }\n}\n"
10
+ "import { PresenceContext, ResetPresence, usePresence } from '@tamagui/use-presence'\nimport {\n getSplitStyles,\n hooks,\n isWeb,\n Text,\n useComposedRefs,\n useThemeWithState,\n View,\n type AnimationDriver,\n type UniversalAnimatedNumber,\n} from '@tamagui/web'\nimport type { TransitionConfig } from 'moti'\nimport { useMotify } from 'moti/author'\nimport type { CSSProperties } from 'react'\nimport React, { forwardRef, useMemo, useRef } from 'react'\nimport type { TextStyle } from 'react-native'\nimport type { SharedValue } from 'react-native-reanimated'\nimport Animated, {\n cancelAnimation,\n runOnJS,\n useAnimatedReaction,\n useAnimatedStyle,\n useDerivedValue,\n useSharedValue,\n withSpring,\n withTiming,\n} from 'react-native-reanimated'\n\ntype ReanimatedAnimatedNumber = SharedValue<number>\n\n// this is our own custom reanimated animated component so we can allow data- attributes, className etc\n// this should ultimately be merged with react-native-web-lite\n\nfunction createTamaguiAnimatedComponent(defaultTag = 'div') {\n const isText = defaultTag === 'span'\n\n const Component = Animated.createAnimatedComponent(\n forwardRef((propsIn: any, ref) => {\n const { forwardedRef, animation, tag = defaultTag, ...propsRest } = propsIn\n const hostRef = useRef()\n const composedRefs = useComposedRefs(forwardedRef, ref, hostRef)\n const stateRef = useRef<any>()\n if (!stateRef.current) {\n stateRef.current = {\n get host() {\n return hostRef.current\n },\n }\n }\n\n const [_, state] = useThemeWithState({})\n\n // get styles but only inline style\n const result = getSplitStyles(\n propsRest,\n isText ? Text.staticConfig : View.staticConfig,\n state?.theme!,\n state?.name!,\n {\n unmounted: false,\n } as any,\n {\n isAnimated: false,\n noClass: true,\n }\n )\n\n const props = result.viewProps\n const Element = tag\n const transformedProps = hooks.usePropsTransform?.(tag, props, stateRef, false)\n\n return <Element {...transformedProps} ref={composedRefs} />\n })\n )\n Component['acceptTagProp'] = true\n return Component\n}\n\nconst AnimatedView = createTamaguiAnimatedComponent('div')\nconst AnimatedText = createTamaguiAnimatedComponent('span')\n\n// const AnimatedView = styled(View, {\n// disableClassName: true,\n// })\n\n// const AnimatedText = styled(Text, {\n// disableClassName: true,\n// })\n\nconst onlyAnimateKeys: { [key in keyof TextStyle | keyof CSSProperties]?: boolean } = {\n transform: true,\n opacity: true,\n height: true,\n width: true,\n backgroundColor: true,\n borderColor: true,\n borderLeftColor: true,\n borderRightColor: true,\n borderTopColor: true,\n borderBottomColor: true,\n borderRadius: true,\n borderTopLeftRadius: true,\n borderTopRightRadius: true,\n borderBottomLeftRadius: true,\n borderBottomRightRadius: true,\n borderLeftWidth: true,\n borderRightWidth: true,\n borderTopWidth: true,\n borderBottomWidth: true,\n color: true,\n left: true,\n right: true,\n top: true,\n bottom: true,\n fontSize: true,\n fontWeight: true,\n lineHeight: true,\n letterSpacing: true,\n}\n\nexport function createAnimations<A extends Record<string, TransitionConfig>>(\n animations: A\n): AnimationDriver<A> {\n return {\n View: isWeb ? AnimatedView : Animated.View,\n Text: isWeb ? AnimatedText : Animated.Text,\n // View: Animated.View,\n // Text: Animated.Text,\n isReactNative: true,\n animations,\n usePresence,\n ResetPresence,\n\n useAnimatedNumber(initial): UniversalAnimatedNumber<ReanimatedAnimatedNumber> {\n const sharedValue = useSharedValue(initial)\n\n return React.useMemo(\n () => ({\n getInstance() {\n 'worklet'\n return sharedValue\n },\n getValue() {\n 'worklet'\n return sharedValue.value\n },\n setValue(next, config = { type: 'spring' }, onFinish) {\n 'worklet'\n if (config.type === 'direct') {\n sharedValue.value = next\n onFinish?.()\n } else if (config.type === 'spring') {\n sharedValue.value = withSpring(\n next,\n config,\n onFinish\n ? () => {\n 'worklet'\n runOnJS(onFinish)()\n }\n : undefined\n )\n } else {\n sharedValue.value = withTiming(\n next,\n config,\n onFinish\n ? () => {\n 'worklet'\n runOnJS(onFinish)()\n }\n : undefined\n )\n }\n },\n stop() {\n 'worklet'\n cancelAnimation(sharedValue)\n },\n }),\n [sharedValue]\n )\n },\n\n useAnimatedNumberReaction({ value }, onValue) {\n const instance = value.getInstance()\n return useAnimatedReaction(\n () => {\n return instance.value\n },\n (next, prev) => {\n if (prev !== next) {\n // @nate what is the point of this hook? is this necessary?\n // without runOnJS, onValue would need to be a worklet\n runOnJS(onValue)(next)\n }\n },\n // dependency array is very important here\n [onValue, instance]\n )\n },\n\n /**\n * `getStyle` must be a worklet\n */\n useAnimatedNumberStyle(val, getStyle) {\n const instance = val.getInstance()\n\n // this seems wrong but it works\n const derivedValue = useDerivedValue(() => {\n return instance.value\n // dependency array is very important here\n }, [instance, getStyle])\n\n return useAnimatedStyle(() => {\n return getStyle(derivedValue.value)\n // dependency array is very important here\n }, [val, getStyle, derivedValue, instance])\n },\n\n useAnimations: (animationProps) => {\n const { props, presence, style, componentState } = animationProps\n const animationKey = Array.isArray(props.animation)\n ? props.animation[0]\n : props.animation\n\n const isHydrating = componentState.unmounted === true\n const disableAnimation = isHydrating || !animationKey\n const presenceContext = React.useContext(PresenceContext)\n\n // this memo is very important for performance, there's a big cost to\n // updating these values every render\n const { dontAnimate, motiProps } = useMemo(() => {\n let animate = {}\n let dontAnimate = {}\n\n if (disableAnimation) {\n dontAnimate = style\n } else {\n const animateOnly = props.animateOnly as string[]\n for (const key in style) {\n const value = style[key]\n if (\n !onlyAnimateKeys[key] ||\n value === 'auto' ||\n (typeof value === 'string' && value.startsWith('calc')) ||\n (animateOnly && !animateOnly.includes(key))\n ) {\n dontAnimate[key] = value\n } else {\n animate[key] = value\n }\n }\n }\n\n // if we don't do this moti seems to flicker a frame before applying animation\n if (componentState.unmounted === 'should-enter') {\n dontAnimate = style\n }\n\n const styles = animate\n const isExiting = Boolean(presence?.[1])\n const usePresenceValue = (presence || undefined) as any\n\n type UseMotiProps = Parameters<typeof useMotify>[0]\n\n // TODO moti is giving us type troubles, but this should work\n let transition = isHydrating\n ? { type: 'transition', duration: 0 }\n : (animations[animationKey as keyof typeof animations] as any)\n\n let hasClonedTransition = false\n\n if (Array.isArray(props.animation)) {\n const config = props.animation[1]\n if (config && typeof config === 'object') {\n for (const key in config) {\n const val = config[key]\n\n // performance - this seems to have (strangely) huge performance effect in uniswap\n // so instead of cloning up front, we clone only when we absolutely have to\n if (!hasClonedTransition) {\n transition = Object.assign({}, transition)\n hasClonedTransition = true\n }\n\n // referencing a pre-defined config\n if (typeof val === 'string') {\n transition[key] = animations[val]\n } else {\n transition[key] = val\n }\n }\n }\n }\n\n return {\n dontAnimate,\n motiProps: {\n animate: isExiting || componentState.unmounted === true ? {} : styles,\n transition: componentState.unmounted ? { duration: 0 } : transition,\n usePresenceValue,\n presenceContext,\n exit: isExiting ? styles : undefined,\n } satisfies UseMotiProps,\n }\n }, [animationKey, componentState.unmounted, JSON.stringify(style), presenceContext])\n\n const moti = useMotify(motiProps)\n\n if (\n process.env.NODE_ENV === 'development' &&\n props['debug'] &&\n props['debug'] !== 'profile'\n ) {\n console.info(`useMotify(`, JSON.stringify(motiProps, null, 2) + ')', {\n 'componentState.unmounted': componentState.unmounted,\n motiProps,\n moti,\n style: [dontAnimate, moti.style],\n })\n }\n\n return {\n style: [dontAnimate, moti.style],\n }\n },\n }\n}\n"
11
11
  ],
12
12
  "version": 3
13
13
  }