@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.
- package/dist/cjs/createAnimations.js +8 -4
- package/dist/cjs/createAnimations.js.map +1 -1
- package/dist/cjs/createAnimations.native.js +30 -5
- package/dist/cjs/createAnimations.native.js.map +2 -2
- package/dist/esm/createAnimations.js +8 -4
- package/dist/esm/createAnimations.js.map +1 -1
- package/dist/esm/createAnimations.mjs +11 -4
- package/dist/esm/createAnimations.native.js +28 -4
- package/dist/esm/createAnimations.native.js.map +2 -2
- package/package.json +4 -4
- package/src/createAnimations.tsx +14 -3
- package/types/createAnimations.d.ts.map +1 -1
|
@@ -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 ===
|
|
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
|
-
|
|
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 ||
|
|
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"))
|
|
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 ===
|
|
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 =
|
|
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 ||
|
|
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": "
|
|
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 ===
|
|
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
|
-
|
|
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 ||
|
|
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": "AAAA,SAAS,iBAAiB,eAAe,mBAAmB;AAG5D,SAAS,iBAAiB;AAC1B,SAA6B,YAAY,eAAe;AAGxD,OAAO;AAAA,EACL;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AA8BP,MAAM,kBAAgF;AAAA,EACpF,WAAW;AAAA,EACX,SAAS;AAAA,EACT,QAAQ;AAAA,EACR,OAAO;AAAA,EACP,iBAAiB;AAAA,EACjB,aAAa;AAAA,EACb,iBAAiB;AAAA,EACjB,kBAAkB;AAAA,EAClB,gBAAgB;AAAA,EAChB,mBAAmB;AAAA,EACnB,cAAc;AAAA,EACd,qBAAqB;AAAA,EACrB,sBAAsB;AAAA,EACtB,wBAAwB;AAAA,EACxB,yBAAyB;AAAA,EACzB,iBAAiB;AAAA,EACjB,kBAAkB;AAAA,EAClB,gBAAgB;AAAA,EAChB,mBAAmB;AAAA,EACnB,OAAO;AAAA,EACP,MAAM;AAAA,EACN,OAAO;AAAA,EACP,KAAK;AAAA,EACL,QAAQ;AACV;AAEO,SAAS,iBACd,YACoB;AACpB,SAAO;AAAA;AAAA;AAAA,IAGL,MAAM,SAAS;AAAA,IACf,MAAM,SAAS;AAAA,IACf,eAAe;AAAA,IACf;AAAA,IACA;AAAA,IACA;AAAA,IAEA,kBAAkB,SAA4D;AAC5E,YAAM,cAAc,eAAe,OAAO;AAE1C,aAAO;AAAA,QACL,OAAO;AAAA,UACL,cAAc;AACZ;AACA,mBAAO;AAAA,UACT;AAAA,UACA,WAAW;AACT;AACA,mBAAO,YAAY;AAAA,UACrB;AAAA,UACA,SAAS,MAAM,SAAS,EAAE,MAAM,SAAS,GAAG,UAAU;AACpD;AACA,YAAI,OAAO,SAAS,YAClB,YAAY,QAAQ,MACpB,WAAW,KACF,OAAO,SAAS,WACzB,YAAY,QAAQ;AAAA,cAClB;AAAA,cACA;AAAA,cACA,WACI,MAAM;AACJ;AACA,wBAAQ,QAAQ,EAAE;AAAA,cACpB,IACA;AAAA,YACN,IAEA,YAAY,QAAQ;AAAA,cAClB;AAAA,cACA;AAAA,cACA,WACI,MAAM;AACJ;AACA,wBAAQ,QAAQ,EAAE;AAAA,cACpB,IACA;AAAA,YACN;AAAA,UAEJ;AAAA,UACA,OAAO;AACL;AACA,4BAAgB,WAAW;AAAA,UAC7B;AAAA,QACF;AAAA,QACA,CAAC,WAAW;AAAA,MACd;AAAA,IACF;AAAA,IAEA,0BAA0B,EAAE,MAAM,GAAG,SAAS;AAC5C,YAAM,WAAW,MAAM,YAAY;AACnC,aAAO;AAAA,QACL,MACS,SAAS;AAAA,QAElB,CAAC,MAAM,SAAS;AACd,UAAI,SAAS,QAGX,QAAQ,OAAO,EAAE,IAAI;AAAA,QAEzB;AAAA;AAAA,QAEA,CAAC,SAAS,QAAQ;AAAA,MACpB;AAAA,IACF;AAAA;AAAA;AAAA;AAAA,IAKA,uBAAuB,KAAK,UAAU;AACpC,YAAM,WAAW,IAAI,YAAY,GAG3B,eAAe,gBAAgB,MAC5B,SAAS,OAEf,CAAC,UAAU,QAAQ,CAAC;AAEvB,aAAO,iBAAiB,MACf,SAAS,aAAa,KAAK,GAEjC,CAAC,KAAK,UAAU,cAAc,QAAQ,CAAC;AAAA,IAC5C;AAAA,IAEA,eAAe,CAAC,mBAAmB;AACjC,YAAM,EAAE,OAAO,UAAU,OAAO,cAAc,eAAe,IAAI,gBAC3D,eAAe,MAAM,QAAQ,MAAM,SAAS,IAC9C,MAAM,UAAU,CAAC,IACjB,MAAM,WAEJ,cAAc,eAAe,cAAc;AACjD,UAAI,UAAU,CAAC,GACX,cAAc,CAAC;AAEnB,UAAI;AACF,sBAAc;AAAA,WACT;AACL,cAAM,cAAc,MAAM;AAC1B,mBAAW,OAAO,OAAO;AACvB,gBAAM,QAAQ,MAAM,GAAG;AACvB,UACE,CAAC,gBAAgB,GAAG,KACpB,UAAU,UACT,eAAe,CAAC,YAAY,SAAS,GAAG,IAEzC,YAAY,GAAG,IAAI,QAEnB,QAAQ,GAAG,IAAI;AAAA,QAEnB;AAAA,MACF;
|
|
4
|
+
"mappings": "AAAA,SAAS,iBAAiB,eAAe,mBAAmB;AAG5D,SAAS,iBAAiB;AAC1B,SAA6B,YAAY,eAAe;AAGxD,OAAO;AAAA,EACL;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AA8BP,MAAM,kBAAgF;AAAA,EACpF,WAAW;AAAA,EACX,SAAS;AAAA,EACT,QAAQ;AAAA,EACR,OAAO;AAAA,EACP,iBAAiB;AAAA,EACjB,aAAa;AAAA,EACb,iBAAiB;AAAA,EACjB,kBAAkB;AAAA,EAClB,gBAAgB;AAAA,EAChB,mBAAmB;AAAA,EACnB,cAAc;AAAA,EACd,qBAAqB;AAAA,EACrB,sBAAsB;AAAA,EACtB,wBAAwB;AAAA,EACxB,yBAAyB;AAAA,EACzB,iBAAiB;AAAA,EACjB,kBAAkB;AAAA,EAClB,gBAAgB;AAAA,EAChB,mBAAmB;AAAA,EACnB,OAAO;AAAA,EACP,MAAM;AAAA,EACN,OAAO;AAAA,EACP,KAAK;AAAA,EACL,QAAQ;AACV;AAEO,SAAS,iBACd,YACoB;AACpB,SAAO;AAAA;AAAA;AAAA,IAGL,MAAM,SAAS;AAAA,IACf,MAAM,SAAS;AAAA,IACf,eAAe;AAAA,IACf;AAAA,IACA;AAAA,IACA;AAAA,IAEA,kBAAkB,SAA4D;AAC5E,YAAM,cAAc,eAAe,OAAO;AAE1C,aAAO;AAAA,QACL,OAAO;AAAA,UACL,cAAc;AACZ;AACA,mBAAO;AAAA,UACT;AAAA,UACA,WAAW;AACT;AACA,mBAAO,YAAY;AAAA,UACrB;AAAA,UACA,SAAS,MAAM,SAAS,EAAE,MAAM,SAAS,GAAG,UAAU;AACpD;AACA,YAAI,OAAO,SAAS,YAClB,YAAY,QAAQ,MACpB,WAAW,KACF,OAAO,SAAS,WACzB,YAAY,QAAQ;AAAA,cAClB;AAAA,cACA;AAAA,cACA,WACI,MAAM;AACJ;AACA,wBAAQ,QAAQ,EAAE;AAAA,cACpB,IACA;AAAA,YACN,IAEA,YAAY,QAAQ;AAAA,cAClB;AAAA,cACA;AAAA,cACA,WACI,MAAM;AACJ;AACA,wBAAQ,QAAQ,EAAE;AAAA,cACpB,IACA;AAAA,YACN;AAAA,UAEJ;AAAA,UACA,OAAO;AACL;AACA,4BAAgB,WAAW;AAAA,UAC7B;AAAA,QACF;AAAA,QACA,CAAC,WAAW;AAAA,MACd;AAAA,IACF;AAAA,IAEA,0BAA0B,EAAE,MAAM,GAAG,SAAS;AAC5C,YAAM,WAAW,MAAM,YAAY;AACnC,aAAO;AAAA,QACL,MACS,SAAS;AAAA,QAElB,CAAC,MAAM,SAAS;AACd,UAAI,SAAS,QAGX,QAAQ,OAAO,EAAE,IAAI;AAAA,QAEzB;AAAA;AAAA,QAEA,CAAC,SAAS,QAAQ;AAAA,MACpB;AAAA,IACF;AAAA;AAAA;AAAA;AAAA,IAKA,uBAAuB,KAAK,UAAU;AACpC,YAAM,WAAW,IAAI,YAAY,GAG3B,eAAe,gBAAgB,MAC5B,SAAS,OAEf,CAAC,UAAU,QAAQ,CAAC;AAEvB,aAAO,iBAAiB,MACf,SAAS,aAAa,KAAK,GAEjC,CAAC,KAAK,UAAU,cAAc,QAAQ,CAAC;AAAA,IAC5C;AAAA,IAEA,eAAe,CAAC,mBAAmB;AACjC,YAAM,EAAE,OAAO,UAAU,OAAO,cAAc,eAAe,IAAI,gBAC3D,eAAe,MAAM,QAAQ,MAAM,SAAS,IAC9C,MAAM,UAAU,CAAC,IACjB,MAAM,WAEJ,cAAc,eAAe,cAAc;AACjD,UAAI,UAAU,CAAC,GACX,cAAc,CAAC;AAEnB,UAAI;AACF,sBAAc;AAAA,WACT;AACL,cAAM,cAAc,MAAM;AAC1B,mBAAW,OAAO,OAAO;AACvB,gBAAM,QAAQ,MAAM,GAAG;AACvB,UACE,CAAC,gBAAgB,GAAG,KACpB,UAAU,UACT,OAAO,SAAU,YAAY,MAAM,WAAW,MAAM,KACpD,eAAe,CAAC,YAAY,SAAS,GAAG,IAEzC,YAAY,GAAG,IAAI,QAEnB,QAAQ,GAAG,IAAI;AAAA,QAEnB;AAAA,MACF;AAGA,MAAI,eAAe,cAAc,mBAC/B,cAAc;AAKhB,YAAM,aAAa,KAAK,UAAU,OAAO,GACnC,SAAS,QAAQ,MAAM,KAAK,MAAM,UAAU,GAAG,CAAC,UAAU,CAAC,GAE3D,YAAY,EAAQ,WAAW,CAAC,GAChC,kBAAkB,WAAW,eAAe,GAC5C,mBAAoB,YAAY,QAKhC,aAAa,cACf,EAAE,MAAM,cAAc,UAAU,EAAE,IAClC;AAAA,QACE,GAAI,WAAW,YAAuC;AAAA,MACxD;AAEJ,UAAI,MAAM,QAAQ,MAAM,SAAS,GAAG;AAClC,cAAM,SAAS,MAAM,UAAU,CAAC;AAChC,YAAI,UAAU,OAAO,UAAW;AAC9B,qBAAW,OAAO,QAAQ;AACxB,kBAAM,MAAM,OAAO,GAAG;AAEtB,YAAI,OAAO,OAAQ,WACjB,WAAW,GAAG,IAAI,WAAW,GAAG,IAEhC,WAAW,GAAG,IAAI;AAAA,UAEtB;AAAA,MAEJ;AAEA,YAAM,YAAY;AAAA,QAChB,SAAS,aAAa,eAAe,YAAY,CAAC,IAAI;AAAA,QACtD,MAAM,eAAe,YAAY,SAAS,CAAC;AAAA,QAC3C;AAAA,QACA;AAAA,QACA;AAAA,QACA,MAAM,YAAY,SAAS;AAAA,MAC7B,GAEM,OAAO,UAAU,SAAS;AAEhC,aAAI,QAAQ,IAAI,aAAa,iBAAiB,MAAM,SAClD,QAAQ,KAAK,cAAc,KAAK,UAAU,WAAW,MAAM,CAAC,IAAI,KAAK;AAAA,QACnE;AAAA,QACA;AAAA,QACA;AAAA,QACA,OAAO,CAAC,aAAa,KAAK,KAAK;AAAA,MACjC,CAAC,GAGI;AAAA,QACL,OAAO,CAAC,aAAa,KAAK,KAAK;AAAA,MACjC;AAAA,IACF;AAAA,EACF;AACF;",
|
|
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 ===
|
|
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 =
|
|
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 ||
|
|
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 ===
|
|
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 =
|
|
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 ||
|
|
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": "AAAA,SAASA,iBAAiBC,eAAeC,mBAAmB;AAG5D,SAASC,iBAAiB;AAC1B,SAA6BC,YAAYC,eAAe;AAGxD,OAAOC,YACLC,iBACAC,SACAC,qBACAC,kBACAC,iBACAC,gBACAC,YACAC,kBACK
|
|
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.
|
|
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.
|
|
19
|
-
"@tamagui/web": "1.
|
|
18
|
+
"@tamagui/use-presence": "1.100.0",
|
|
19
|
+
"@tamagui/web": "1.100.0"
|
|
20
20
|
},
|
|
21
21
|
"devDependencies": {
|
|
22
|
-
"@tamagui/build": "1.
|
|
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"
|
package/src/createAnimations.tsx
CHANGED
|
@@ -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 ===
|
|
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 =
|
|
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 ||
|
|
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,
|
|
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"}
|