@tamagui/animations-moti 1.46.1 → 1.47.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.
@@ -32,7 +32,7 @@ __export(createAnimations_exports, {
32
32
  });
33
33
  module.exports = __toCommonJS(createAnimations_exports);
34
34
  var import_use_presence = require("@tamagui/use-presence");
35
- var import_moti = require("moti");
35
+ var import_author = require("moti/author");
36
36
  var import_react = require("react");
37
37
  var import_react_native_reanimated = __toESM(require("react-native-reanimated"));
38
38
  function createAnimations(animations) {
@@ -41,6 +41,7 @@ function createAnimations(animations) {
41
41
  Text: import_react_native_reanimated.default.Text,
42
42
  isReactNative: true,
43
43
  keepStyleSSR: true,
44
+ supportsCSSVars: true,
44
45
  animations,
45
46
  usePresence: import_use_presence.usePresence,
46
47
  useAnimatedNumber(initial) {
@@ -100,7 +101,7 @@ function createAnimations(animations) {
100
101
  return getStyle(derivedValue.value);
101
102
  }, [val, getStyle, derivedValue]);
102
103
  },
103
- useAnimations: ({ props, presence, style, state, onDidAnimate }) => {
104
+ useAnimations: ({ props, presence, style, onDidAnimate }) => {
104
105
  const animationKey = Array.isArray(props.animation) ? props.animation[0] : props.animation;
105
106
  let animate;
106
107
  let dontAnimate;
@@ -121,16 +122,21 @@ function createAnimations(animations) {
121
122
  const animateStr = JSON.stringify(animate);
122
123
  const styles = (0, import_react.useMemo)(() => JSON.parse(animateStr), [animateStr]);
123
124
  const isExiting = Boolean(presence == null ? void 0 : presence[1]);
125
+ const sendExitComplete = presence == null ? void 0 : presence[1];
124
126
  const transition = animations[animationKey];
127
+ const onDidAnimateCombined = (0, import_react.useCallback)(() => {
128
+ onDidAnimate == null ? void 0 : onDidAnimate();
129
+ sendExitComplete == null ? void 0 : sendExitComplete();
130
+ }, []);
125
131
  const motiProps = {
126
132
  animate: isExiting ? void 0 : styles,
127
133
  transition,
128
- onDidAnimate,
134
+ onDidAnimate: onDidAnimateCombined,
129
135
  usePresenceValue: presence,
130
136
  presenceContext: (0, import_react.useContext)(import_use_presence.PresenceContext),
131
137
  exit: isExiting ? styles : void 0
132
138
  };
133
- const moti = (0, import_moti.useMotify)(motiProps);
139
+ const moti = (0, import_author.useMotify)(motiProps);
134
140
  if (process.env.NODE_ENV === "development" && props["debug"] === "verbose") {
135
141
  console.log(`Moti animation:`, {
136
142
  animate,
@@ -138,7 +144,8 @@ function createAnimations(animations) {
138
144
  styles,
139
145
  moti,
140
146
  dontAnimate,
141
- isExiting
147
+ isExiting,
148
+ animateStr
142
149
  });
143
150
  }
144
151
  return {
@@ -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
  }
@@ -1,6 +1,6 @@
1
1
  import { PresenceContext, usePresence } from "@tamagui/use-presence";
2
- import { useMotify } from "moti";
3
- import { useContext, useMemo } from "react";
2
+ import { useMotify } from "moti/author";
3
+ import { useCallback, useContext, useMemo } from "react";
4
4
  import Animated, {
5
5
  cancelAnimation,
6
6
  runOnJS,
@@ -17,6 +17,7 @@ function createAnimations(animations) {
17
17
  Text: Animated.Text,
18
18
  isReactNative: true,
19
19
  keepStyleSSR: true,
20
+ supportsCSSVars: true,
20
21
  animations,
21
22
  usePresence,
22
23
  useAnimatedNumber(initial) {
@@ -76,7 +77,7 @@ function createAnimations(animations) {
76
77
  return getStyle(derivedValue.value);
77
78
  }, [val, getStyle, derivedValue]);
78
79
  },
79
- useAnimations: ({ props, presence, style, state, onDidAnimate }) => {
80
+ useAnimations: ({ props, presence, style, onDidAnimate }) => {
80
81
  const animationKey = Array.isArray(props.animation) ? props.animation[0] : props.animation;
81
82
  let animate;
82
83
  let dontAnimate;
@@ -97,11 +98,16 @@ function createAnimations(animations) {
97
98
  const animateStr = JSON.stringify(animate);
98
99
  const styles = useMemo(() => JSON.parse(animateStr), [animateStr]);
99
100
  const isExiting = Boolean(presence == null ? void 0 : presence[1]);
101
+ const sendExitComplete = presence == null ? void 0 : presence[1];
100
102
  const transition = animations[animationKey];
103
+ const onDidAnimateCombined = useCallback(() => {
104
+ onDidAnimate == null ? void 0 : onDidAnimate();
105
+ sendExitComplete == null ? void 0 : sendExitComplete();
106
+ }, []);
101
107
  const motiProps = {
102
108
  animate: isExiting ? void 0 : styles,
103
109
  transition,
104
- onDidAnimate,
110
+ onDidAnimate: onDidAnimateCombined,
105
111
  usePresenceValue: presence,
106
112
  presenceContext: useContext(PresenceContext),
107
113
  exit: isExiting ? styles : void 0
@@ -114,7 +120,8 @@ function createAnimations(animations) {
114
120
  styles,
115
121
  moti,
116
122
  dontAnimate,
117
- isExiting
123
+ isExiting,
124
+ animateStr
118
125
  });
119
126
  }
120
127
  return {
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/createAnimations.tsx"],
4
- "mappings": "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",
4
+ "mappings": "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",
5
5
  "names": []
6
6
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tamagui/animations-moti",
3
- "version": "1.46.1",
3
+ "version": "1.47.0",
4
4
  "source": "src/index.ts",
5
5
  "license": "MIT",
6
6
  "types": "./types/index.d.ts",
@@ -12,12 +12,12 @@
12
12
  "dist"
13
13
  ],
14
14
  "dependencies": {
15
- "@tamagui/use-presence": "1.46.1",
16
- "@tamagui/web": "1.46.1",
15
+ "@tamagui/use-presence": "1.47.0",
16
+ "@tamagui/web": "1.47.0",
17
17
  "moti": "^0.25.3"
18
18
  },
19
19
  "devDependencies": {
20
- "@tamagui/build": "1.46.1",
20
+ "@tamagui/build": "1.47.0",
21
21
  "react-native-reanimated": "^3.3.0"
22
22
  },
23
23
  "scripts": {
@@ -1,7 +1,8 @@
1
1
  import { PresenceContext, usePresence } from '@tamagui/use-presence'
2
2
  import { AnimationDriver, UniversalAnimatedNumber } from '@tamagui/web'
3
- import { MotiTransition, useMotify } from 'moti'
4
- import { useContext, useMemo } from 'react'
3
+ import type { MotiTransition } from 'moti'
4
+ import { useMotify } from 'moti/author'
5
+ import { useCallback, useContext, useMemo } from 'react'
5
6
  import Animated, {
6
7
  SharedValue,
7
8
  cancelAnimation,
@@ -24,6 +25,7 @@ export function createAnimations<A extends Record<string, MotiTransition>>(
24
25
  Text: Animated.Text,
25
26
  isReactNative: true,
26
27
  keepStyleSSR: true,
28
+ supportsCSSVars: true,
27
29
  animations,
28
30
  usePresence,
29
31
 
@@ -95,7 +97,7 @@ export function createAnimations<A extends Record<string, MotiTransition>>(
95
97
  }, [val, getStyle, derivedValue])
96
98
  },
97
99
 
98
- useAnimations: ({ props, presence, style, state, onDidAnimate }) => {
100
+ useAnimations: ({ props, presence, style, onDidAnimate }) => {
99
101
  const animationKey = Array.isArray(props.animation)
100
102
  ? props.animation[0]
101
103
  : props.animation
@@ -107,7 +109,6 @@ export function createAnimations<A extends Record<string, MotiTransition>>(
107
109
  if (animateOnly) {
108
110
  animate = {}
109
111
  dontAnimate = { ...style }
110
-
111
112
  for (const key of animateOnly) {
112
113
  if (!(key in style)) continue
113
114
  animate[key] = style[key]
@@ -123,12 +124,18 @@ export function createAnimations<A extends Record<string, MotiTransition>>(
123
124
  const animateStr = JSON.stringify(animate)
124
125
  const styles = useMemo(() => JSON.parse(animateStr), [animateStr])
125
126
  const isExiting = Boolean(presence?.[1])
127
+ const sendExitComplete = presence?.[1]
126
128
  const transition = animations[animationKey as keyof typeof animations]
127
129
 
130
+ const onDidAnimateCombined = useCallback(() => {
131
+ onDidAnimate?.()
132
+ sendExitComplete?.()
133
+ }, [])
134
+
128
135
  const motiProps = {
129
136
  animate: isExiting ? undefined : styles,
130
137
  transition,
131
- onDidAnimate,
138
+ onDidAnimate: onDidAnimateCombined,
132
139
  usePresenceValue: presence as any,
133
140
  presenceContext: useContext(PresenceContext),
134
141
  exit: isExiting ? styles : undefined,
@@ -145,6 +152,7 @@ export function createAnimations<A extends Record<string, MotiTransition>>(
145
152
  moti,
146
153
  dontAnimate,
147
154
  isExiting,
155
+ animateStr,
148
156
  })
149
157
  }
150
158
 
@@ -1,4 +1,4 @@
1
1
  import { AnimationDriver } from '@tamagui/web';
2
- import { MotiTransition } from 'moti';
2
+ import type { MotiTransition } from 'moti';
3
3
  export declare function createAnimations<A extends Record<string, MotiTransition>>(animations: A): AnimationDriver<A>;
4
4
  //# sourceMappingURL=createAnimations.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"createAnimations.d.ts","sourceRoot":"","sources":["../src/createAnimations.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAA2B,MAAM,cAAc,CAAA;AACvE,OAAO,EAAE,cAAc,EAAa,MAAM,MAAM,CAAA;AAgBhD,wBAAgB,gBAAgB,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,EACvE,UAAU,EAAE,CAAC,GACZ,eAAe,CAAC,CAAC,CAAC,CAuIpB"}
1
+ {"version":3,"file":"createAnimations.d.ts","sourceRoot":"","sources":["../src/createAnimations.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAA2B,MAAM,cAAc,CAAA;AACvE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,MAAM,CAAA;AAiB1C,wBAAgB,gBAAgB,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,EACvE,UAAU,EAAE,CAAC,GACZ,eAAe,CAAC,CAAC,CAAC,CA8IpB"}