@tamagui/animations-css 1.26.0 → 1.26.1
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/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tamagui/animations-css",
|
|
3
|
-
"version": "1.26.
|
|
3
|
+
"version": "1.26.1",
|
|
4
4
|
"source": "src/index.ts",
|
|
5
5
|
"sideEffects": false,
|
|
6
6
|
"license": "MIT",
|
|
@@ -13,12 +13,12 @@
|
|
|
13
13
|
"dist"
|
|
14
14
|
],
|
|
15
15
|
"dependencies": {
|
|
16
|
-
"@tamagui/cubic-bezier-animator": "1.26.
|
|
17
|
-
"@tamagui/use-presence": "1.26.
|
|
18
|
-
"@tamagui/web": "1.26.
|
|
16
|
+
"@tamagui/cubic-bezier-animator": "1.26.1",
|
|
17
|
+
"@tamagui/use-presence": "1.26.1",
|
|
18
|
+
"@tamagui/web": "1.26.1"
|
|
19
19
|
},
|
|
20
20
|
"devDependencies": {
|
|
21
|
-
"@tamagui/build": "1.26.
|
|
21
|
+
"@tamagui/build": "1.26.1"
|
|
22
22
|
},
|
|
23
23
|
"scripts": {
|
|
24
24
|
"build": "tamagui-build",
|
|
@@ -1,133 +0,0 @@
|
|
|
1
|
-
import { animate } from "@tamagui/cubic-bezier-animator";
|
|
2
|
-
import { usePresence } from "@tamagui/use-presence";
|
|
3
|
-
import {
|
|
4
|
-
Stack,
|
|
5
|
-
Text,
|
|
6
|
-
useIsomorphicLayoutEffect,
|
|
7
|
-
useSafeRef
|
|
8
|
-
} from "@tamagui/web";
|
|
9
|
-
import { useMemo, useState } from "react";
|
|
10
|
-
function createAnimations(animations) {
|
|
11
|
-
return {
|
|
12
|
-
View: Stack,
|
|
13
|
-
Text,
|
|
14
|
-
animations,
|
|
15
|
-
usePresence,
|
|
16
|
-
useAnimatedNumber(initial) {
|
|
17
|
-
const [val, setVal] = useState(initial);
|
|
18
|
-
return {
|
|
19
|
-
getInstance() {
|
|
20
|
-
return val;
|
|
21
|
-
},
|
|
22
|
-
getValue() {
|
|
23
|
-
return val;
|
|
24
|
-
},
|
|
25
|
-
setValue(next) {
|
|
26
|
-
setVal(next);
|
|
27
|
-
},
|
|
28
|
-
stop() {
|
|
29
|
-
}
|
|
30
|
-
};
|
|
31
|
-
},
|
|
32
|
-
useAnimatedNumberReaction({ hostRef, value }, onValue) {
|
|
33
|
-
useIsomorphicLayoutEffect(() => {
|
|
34
|
-
if (!hostRef.current)
|
|
35
|
-
return;
|
|
36
|
-
const onTransitionEvent = (e) => {
|
|
37
|
-
onValue(value.getValue());
|
|
38
|
-
};
|
|
39
|
-
const node = hostRef.current;
|
|
40
|
-
node.addEventListener("transitionstart", onTransitionEvent);
|
|
41
|
-
node.addEventListener("transitioncancel", onTransitionEvent);
|
|
42
|
-
node.addEventListener("transitionend", onTransitionEvent);
|
|
43
|
-
return () => {
|
|
44
|
-
node.removeEventListener("transitionstart", onTransitionEvent);
|
|
45
|
-
node.removeEventListener("transitioncancel", onTransitionEvent);
|
|
46
|
-
node.removeEventListener("transitionend", onTransitionEvent);
|
|
47
|
-
};
|
|
48
|
-
}, [hostRef, onValue]);
|
|
49
|
-
},
|
|
50
|
-
useAnimatedNumberStyle(val, getStyle) {
|
|
51
|
-
return getStyle(val.getValue());
|
|
52
|
-
},
|
|
53
|
-
useAnimations: ({ props, presence, style, state, hostRef }) => {
|
|
54
|
-
const isEntering = !!state.unmounted;
|
|
55
|
-
const isExiting = (presence == null ? void 0 : presence[0]) === false;
|
|
56
|
-
const sendExitComplete = presence == null ? void 0 : presence[1];
|
|
57
|
-
const initialPositionRef = useSafeRef(null);
|
|
58
|
-
const animationKey = Array.isArray(props.animation) ? props.animation[0] : props.animation;
|
|
59
|
-
const animation = animations[animationKey];
|
|
60
|
-
if (!animation) {
|
|
61
|
-
return null;
|
|
62
|
-
}
|
|
63
|
-
const keys = props.animateOnly ? props.animateOnly.join(" ") : "all";
|
|
64
|
-
useIsomorphicLayoutEffect(() => {
|
|
65
|
-
if (!sendExitComplete || !isExiting || !hostRef.current)
|
|
66
|
-
return;
|
|
67
|
-
const node = hostRef.current;
|
|
68
|
-
const onFinishAnimation = () => {
|
|
69
|
-
sendExitComplete == null ? void 0 : sendExitComplete();
|
|
70
|
-
};
|
|
71
|
-
node.addEventListener("transitionend", onFinishAnimation);
|
|
72
|
-
node.addEventListener("transitioncancel", onFinishAnimation);
|
|
73
|
-
return () => {
|
|
74
|
-
node.removeEventListener("transitionend", onFinishAnimation);
|
|
75
|
-
node.addEventListener("transitioncancel", onFinishAnimation);
|
|
76
|
-
};
|
|
77
|
-
}, [sendExitComplete, isExiting]);
|
|
78
|
-
useIsomorphicLayoutEffect(() => {
|
|
79
|
-
var _a;
|
|
80
|
-
if (!hostRef.current || !props.layout) {
|
|
81
|
-
return;
|
|
82
|
-
}
|
|
83
|
-
const boundingBox = (_a = hostRef.current) == null ? void 0 : _a.getBoundingClientRect();
|
|
84
|
-
if (isChanged(initialPositionRef.current, boundingBox)) {
|
|
85
|
-
const transform = invert(
|
|
86
|
-
hostRef.current,
|
|
87
|
-
boundingBox,
|
|
88
|
-
initialPositionRef.current
|
|
89
|
-
);
|
|
90
|
-
animate({
|
|
91
|
-
from: transform,
|
|
92
|
-
to: { x: 0, y: 0, scaleX: 1, scaleY: 1 },
|
|
93
|
-
duration: 1e3,
|
|
94
|
-
onUpdate: ({ x, y, scaleX, scaleY }) => {
|
|
95
|
-
hostRef.current.style.transform = `translate(${x}px, ${y}px) scaleX(${scaleX}) scaleY(${scaleY})`;
|
|
96
|
-
},
|
|
97
|
-
// TODO: extract ease-in from string and convert/map it to a cubicBezier array
|
|
98
|
-
cubicBezier: [0, 1.38, 1, -0.41]
|
|
99
|
-
});
|
|
100
|
-
}
|
|
101
|
-
initialPositionRef.current = boundingBox;
|
|
102
|
-
});
|
|
103
|
-
style.transition = `${keys} ${animation}${props.layout ? ",width 0s, height 0s, margin 0s, padding 0s, transform" : ""}`;
|
|
104
|
-
if (process.env.NODE_ENV === "development" && props["debug"]) {
|
|
105
|
-
console.log("CSS animation", style, { isEntering, isExiting });
|
|
106
|
-
}
|
|
107
|
-
return useMemo(() => {
|
|
108
|
-
return { style };
|
|
109
|
-
}, [JSON.stringify(style)]);
|
|
110
|
-
}
|
|
111
|
-
};
|
|
112
|
-
}
|
|
113
|
-
const isChanged = (initialBox, finalBox) => {
|
|
114
|
-
if (!initialBox || !finalBox)
|
|
115
|
-
return false;
|
|
116
|
-
return JSON.stringify(initialBox) !== JSON.stringify(finalBox);
|
|
117
|
-
};
|
|
118
|
-
const invert = (el, from, to) => {
|
|
119
|
-
const { x: fromX, y: fromY, width: fromWidth, height: fromHeight } = from;
|
|
120
|
-
const { x, y, width, height } = to;
|
|
121
|
-
const transform = {
|
|
122
|
-
x: x - fromX - (fromWidth - width) / 2,
|
|
123
|
-
y: y - fromY - (fromHeight - height) / 2,
|
|
124
|
-
scaleX: width / fromWidth,
|
|
125
|
-
scaleY: height / fromHeight
|
|
126
|
-
};
|
|
127
|
-
el.style.transform = `translate(${transform.x}px, ${transform.y}px) scaleX(${transform.scaleX}) scaleY(${transform.scaleY})`;
|
|
128
|
-
return transform;
|
|
129
|
-
};
|
|
130
|
-
export {
|
|
131
|
-
createAnimations
|
|
132
|
-
};
|
|
133
|
-
//# sourceMappingURL=createAnimations.mjs.map
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../src/createAnimations.tsx"],
|
|
4
|
-
"mappings": "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",
|
|
5
|
-
"names": []
|
|
6
|
-
}
|
package/dist/esm/index.mjs
DELETED