react-native-reanimated 3.17.3 → 3.17.5

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.
Files changed (52) hide show
  1. package/Common/cpp/reanimated/Fabric/ShadowTreeCloner.cpp +37 -17
  2. package/android/gradle/wrapper/gradle-wrapper.jar +0 -0
  3. package/android/gradle/wrapper/gradle-wrapper.properties +1 -1
  4. package/lib/module/Colors.js +14 -9
  5. package/lib/module/Colors.js.map +1 -1
  6. package/lib/module/createAnimatedComponent/InlinePropManager.js +1 -1
  7. package/lib/module/createAnimatedComponent/InlinePropManager.js.map +1 -1
  8. package/lib/module/createAnimatedComponent/PropsFilter.js +7 -8
  9. package/lib/module/createAnimatedComponent/PropsFilter.js.map +1 -1
  10. package/lib/module/hook/useAnimatedStyle.js +2 -2
  11. package/lib/module/hook/useAnimatedStyle.js.map +1 -1
  12. package/lib/module/layoutReanimation/defaultAnimations/Pinwheel.js +4 -4
  13. package/lib/module/layoutReanimation/defaultAnimations/Pinwheel.js.map +1 -1
  14. package/lib/module/layoutReanimation/defaultAnimations/Zoom.js +2 -2
  15. package/lib/module/layoutReanimation/defaultAnimations/Zoom.js.map +1 -1
  16. package/lib/module/platform-specific/jsVersion.js +1 -1
  17. package/lib/module/processBoxShadow.js +57 -44
  18. package/lib/module/processBoxShadow.js.map +1 -1
  19. package/lib/module/screenTransition/styleUpdater.js +1 -1
  20. package/lib/module/screenTransition/styleUpdater.js.map +1 -1
  21. package/lib/module/updateProps/index.js +5 -0
  22. package/lib/module/updateProps/index.js.map +1 -0
  23. package/lib/module/updateProps/processTransformOrigin.js +115 -0
  24. package/lib/module/updateProps/processTransformOrigin.js.map +1 -0
  25. package/lib/module/{UpdateProps.js → updateProps/updateProps.js} +10 -11
  26. package/lib/module/updateProps/updateProps.js.map +1 -0
  27. package/lib/typescript/Colors.d.ts.map +1 -1
  28. package/lib/typescript/createAnimatedComponent/PropsFilter.d.ts +1 -1
  29. package/lib/typescript/createAnimatedComponent/PropsFilter.d.ts.map +1 -1
  30. package/lib/typescript/platform-specific/jsVersion.d.ts +1 -1
  31. package/lib/typescript/processBoxShadow.d.ts.map +1 -1
  32. package/lib/typescript/updateProps/index.d.ts +3 -0
  33. package/lib/typescript/updateProps/index.d.ts.map +1 -0
  34. package/lib/typescript/updateProps/processTransformOrigin.d.ts +2 -0
  35. package/lib/typescript/updateProps/processTransformOrigin.d.ts.map +1 -0
  36. package/lib/typescript/{UpdateProps.d.ts → updateProps/updateProps.d.ts} +3 -7
  37. package/lib/typescript/updateProps/updateProps.d.ts.map +1 -0
  38. package/package.json +7 -7
  39. package/src/Colors.ts +15 -9
  40. package/src/createAnimatedComponent/InlinePropManager.ts +1 -1
  41. package/src/createAnimatedComponent/PropsFilter.tsx +12 -8
  42. package/src/hook/useAnimatedStyle.ts +2 -2
  43. package/src/layoutReanimation/defaultAnimations/Pinwheel.ts +4 -4
  44. package/src/layoutReanimation/defaultAnimations/Zoom.ts +2 -2
  45. package/src/platform-specific/jsVersion.ts +1 -1
  46. package/src/processBoxShadow.ts +60 -48
  47. package/src/screenTransition/styleUpdater.ts +1 -1
  48. package/src/updateProps/index.ts +4 -0
  49. package/src/updateProps/processTransformOrigin.ts +145 -0
  50. package/src/{UpdateProps.ts → updateProps/updateProps.ts} +23 -28
  51. package/lib/module/UpdateProps.js.map +0 -1
  52. package/lib/typescript/UpdateProps.d.ts.map +0 -1
@@ -4,6 +4,12 @@
4
4
  'use strict';
5
5
 
6
6
  // @ts-ignore BoxShadowValue isn't available in RN 0.75
7
+ import { ReanimatedError } from "./errors.js";
8
+ const isLength = value => {
9
+ 'worklet';
10
+
11
+ return value.endsWith('px') || !isNaN(Number(value));
12
+ };
7
13
  function parseBoxShadowString(rawBoxShadows) {
8
14
  'worklet';
9
15
 
@@ -22,51 +28,54 @@ function parseBoxShadowString(rawBoxShadows) {
22
28
  // split rawBoxShadow string by all whitespaces that are not in parenthesis
23
29
  const args = rawBoxShadow.split(/\s+(?![^(]*\))/);
24
30
  for (const arg of args) {
25
- if (arg === 'inset') {
26
- if (boxShadow.inset != null) {
31
+ if (isLength(arg)) {
32
+ switch (lengthCount) {
33
+ case 0:
34
+ offsetX = arg;
35
+ lengthCount++;
36
+ break;
37
+ case 1:
38
+ if (keywordDetectedAfterLength) {
39
+ return [];
40
+ }
41
+ offsetY = arg;
42
+ lengthCount++;
43
+ break;
44
+ case 2:
45
+ if (keywordDetectedAfterLength) {
46
+ return [];
47
+ }
48
+ boxShadow.blurRadius = arg;
49
+ lengthCount++;
50
+ break;
51
+ case 3:
52
+ if (keywordDetectedAfterLength) {
53
+ return [];
54
+ }
55
+ boxShadow.spreadDistance = arg;
56
+ lengthCount++;
57
+ break;
58
+ default:
59
+ return [];
60
+ }
61
+ } else if (arg === 'inset') {
62
+ if (boxShadow.inset) {
27
63
  return [];
28
64
  }
29
- if (offsetX != null) {
65
+ if (offsetX !== null) {
30
66
  keywordDetectedAfterLength = true;
31
67
  }
32
68
  boxShadow.inset = true;
33
69
  continue;
34
- }
35
- switch (lengthCount) {
36
- case 0:
37
- offsetX = arg;
38
- lengthCount++;
39
- break;
40
- case 1:
41
- if (keywordDetectedAfterLength) {
42
- return [];
43
- }
44
- offsetY = arg;
45
- lengthCount++;
46
- break;
47
- case 2:
48
- if (keywordDetectedAfterLength) {
49
- return [];
50
- }
51
- boxShadow.blurRadius = arg;
52
- lengthCount++;
53
- break;
54
- case 3:
55
- if (keywordDetectedAfterLength) {
56
- return [];
57
- }
58
- boxShadow.spreadDistance = arg;
59
- lengthCount++;
60
- break;
61
- case 4:
62
- if (keywordDetectedAfterLength) {
63
- return [];
64
- }
65
- boxShadow.color = arg;
66
- lengthCount++;
67
- break;
68
- default:
70
+ } else {
71
+ if (boxShadow.color) {
69
72
  return [];
73
+ }
74
+ if (offsetX != null) {
75
+ keywordDetectedAfterLength = true;
76
+ }
77
+ boxShadow.color = arg;
78
+ continue;
70
79
  }
71
80
  }
72
81
  if (offsetX === null || offsetY === null) {
@@ -84,10 +93,7 @@ function parseLength(length) {
84
93
  // matches on args with units like "1.5 5% -80deg"
85
94
  const argsWithUnitsRegex = /([+-]?\d*(\.\d+)?)([\w\W]+)?/g;
86
95
  const match = argsWithUnitsRegex.exec(length);
87
- if (!match || Number.isNaN(match[1])) {
88
- return null;
89
- }
90
- if (match[3] != null && match[3] !== 'px') {
96
+ if (!match || !isLength(length)) {
91
97
  return null;
92
98
  }
93
99
  return Number(match[1]);
@@ -97,10 +103,17 @@ export function processBoxShadow(props) {
97
103
 
98
104
  const result = [];
99
105
  const rawBoxShadows = props.boxShadow;
100
- if (rawBoxShadows === '') {
106
+ if (rawBoxShadows === null) {
101
107
  return result;
102
108
  }
103
- const boxShadowList = parseBoxShadowString(rawBoxShadows.replace(/\n/g, ' '));
109
+ let boxShadowList;
110
+ if (typeof rawBoxShadows === 'string') {
111
+ boxShadowList = parseBoxShadowString(rawBoxShadows.replace(/\n/g, ' '));
112
+ } else if (Array.isArray(rawBoxShadows)) {
113
+ boxShadowList = rawBoxShadows;
114
+ } else {
115
+ throw new ReanimatedError(`Box shadow value must be an array of shadow objects or a string. Received: ${JSON.stringify(rawBoxShadows)}`);
116
+ }
104
117
  for (const rawBoxShadow of boxShadowList) {
105
118
  const parsedBoxShadow = {
106
119
  offsetX: 0,
@@ -1 +1 @@
1
- {"version":3,"names":["parseBoxShadowString","rawBoxShadows","result","rawBoxShadow","split","map","bS","trim","filter","boxShadow","offsetX","offsetY","keywordDetectedAfterLength","lengthCount","args","arg","inset","blurRadius","spreadDistance","color","push","parseLength","length","argsWithUnitsRegex","match","exec","Number","isNaN","processBoxShadow","props","boxShadowList","replace","parsedBoxShadow","value"],"sourceRoot":"../../src","sources":["processBoxShadow.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["ReanimatedError","isLength","value","endsWith","isNaN","Number","parseBoxShadowString","rawBoxShadows","result","rawBoxShadow","split","map","bS","trim","filter","boxShadow","offsetX","offsetY","keywordDetectedAfterLength","lengthCount","args","arg","blurRadius","spreadDistance","inset","color","push","parseLength","length","argsWithUnitsRegex","match","exec","processBoxShadow","props","boxShadowList","replace","Array","isArray","JSON","stringify","parsedBoxShadow"],"sourceRoot":"../../src","sources":["processBoxShadow.ts"],"mappings":"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","ignoreList":[]}
@@ -1,7 +1,7 @@
1
1
  'use strict';
2
2
 
3
3
  import { isFabric } from "../PlatformChecker.js";
4
- import updateProps from "../UpdateProps.js";
4
+ import { updateProps } from "../updateProps/index.js";
5
5
  const IS_FABRIC = isFabric();
6
6
  function createViewDescriptorPaper(screenId) {
7
7
  'worklet';
@@ -1 +1 @@
1
- {"version":3,"names":["isFabric","updateProps","IS_FABRIC","createViewDescriptorPaper","screenId","tag","name","createViewDescriptorFabric","shadowNodeWrapper","createViewDescriptor","applyStyleForTopScreen","screenTransitionConfig","event","screenDimensions","topScreenId","screenTransition","topScreenStyle","computeTopScreenStyle","topScreenDescriptor","value","undefined","applyStyleForBelowTopScreen","belowTopScreenId","belowTopScreenStyle","computeBelowTopScreenStyle","belowTopScreenDescriptor","applyStyle"],"sourceRoot":"../../../src","sources":["screenTransition/styleUpdater.ts"],"mappings":"AAAA,YAAY;;AAGZ,SAASA,QAAQ,QAAQ,uBAAoB;AAC7C,OAAOC,WAAW,MAAM,mBAAgB;AAMxC,MAAMC,SAAS,GAAGF,QAAQ,CAAC,CAAC;AAE5B,SAASG,yBAAyBA,CAACC,QAAoC,EAAE;EACvE,SAAS;;EACT,OAAO;IAAEC,GAAG,EAAED,QAAQ;IAAEE,IAAI,EAAE;EAAU,CAAC;AAC3C;AACA,SAASC,0BAA0BA,CAACH,QAAoC,EAAE;EACxE,SAAS;;EACT,OAAO;IAAEI,iBAAiB,EAAEJ;EAAS,CAAC;AACxC;AACA,MAAMK,oBAAoB,GAAGP,SAAS,GAClCK,0BAA0B,GAC1BJ,yBAAyB;AAE7B,SAASO,sBAAsBA,CAC7BC,sBAA8C,EAC9CC,KAAoC,EACpC;EACA,SAAS;;EACT,MAAM;IAAEC,gBAAgB;IAAEC,WAAW;IAAEC;EAAiB,CAAC,GACvDJ,sBAAsB;EACxB,MAAM;IAAEK,cAAc,EAAEC;EAAsB,CAAC,GAAGF,gBAAgB;EAClE,MAAMC,cAAc,GAAGC,qBAAqB,CAACL,KAAK,EAAEC,gBAAgB,CAAC;EACrE,MAAMK,mBAAmB,GAAG;IAC1BC,KAAK,EAAE,CAACV,oBAAoB,CAACK,WAAW,CAAC;EAC3C,CAAC;EACDb,WAAW,CAACiB,mBAAmB,EAAEF,cAAc,EAAEI,SAAS,CAAC;AAC7D;AAEA,OAAO,SAASC,2BAA2BA,CACzCV,sBAA8C,EAC9CC,KAAoC,EACpC;EACA,SAAS;;EACT,MAAM;IAAEC,gBAAgB;IAAES,gBAAgB;IAAEP;EAAiB,CAAC,GAC5DJ,sBAAsB;EACxB,MAAM;IAAEY,mBAAmB,EAAEC;EAA2B,CAAC,GAAGT,gBAAgB;EAC5E,MAAMQ,mBAAmB,GAAGC,0BAA0B,CACpDZ,KAAK,EACLC,gBACF,CAAC;EACD,MAAMY,wBAAwB,GAAG;IAC/BN,KAAK,EAAE,CAACV,oBAAoB,CAACa,gBAAgB,CAAC;EAChD,CAAC;EACDrB,WAAW,CAACwB,wBAAwB,EAAEF,mBAAmB,EAAEH,SAAS,CAAC;AACvE;AAEA,OAAO,SAASM,UAAUA,CACxBf,sBAA8C,EAC9CC,KAAoC,EACpC;EACA,SAAS;;EACTF,sBAAsB,CAACC,sBAAsB,EAAEC,KAAK,CAAC;EACrDS,2BAA2B,CAACV,sBAAsB,EAAEC,KAAK,CAAC;AAC5D","ignoreList":[]}
1
+ {"version":3,"names":["isFabric","updateProps","IS_FABRIC","createViewDescriptorPaper","screenId","tag","name","createViewDescriptorFabric","shadowNodeWrapper","createViewDescriptor","applyStyleForTopScreen","screenTransitionConfig","event","screenDimensions","topScreenId","screenTransition","topScreenStyle","computeTopScreenStyle","topScreenDescriptor","value","undefined","applyStyleForBelowTopScreen","belowTopScreenId","belowTopScreenStyle","computeBelowTopScreenStyle","belowTopScreenDescriptor","applyStyle"],"sourceRoot":"../../../src","sources":["screenTransition/styleUpdater.ts"],"mappings":"AAAA,YAAY;;AAGZ,SAASA,QAAQ,QAAQ,uBAAoB;AAC7C,SAASC,WAAW,QAAQ,yBAAgB;AAM5C,MAAMC,SAAS,GAAGF,QAAQ,CAAC,CAAC;AAE5B,SAASG,yBAAyBA,CAACC,QAAoC,EAAE;EACvE,SAAS;;EACT,OAAO;IAAEC,GAAG,EAAED,QAAQ;IAAEE,IAAI,EAAE;EAAU,CAAC;AAC3C;AACA,SAASC,0BAA0BA,CAACH,QAAoC,EAAE;EACxE,SAAS;;EACT,OAAO;IAAEI,iBAAiB,EAAEJ;EAAS,CAAC;AACxC;AACA,MAAMK,oBAAoB,GAAGP,SAAS,GAClCK,0BAA0B,GAC1BJ,yBAAyB;AAE7B,SAASO,sBAAsBA,CAC7BC,sBAA8C,EAC9CC,KAAoC,EACpC;EACA,SAAS;;EACT,MAAM;IAAEC,gBAAgB;IAAEC,WAAW;IAAEC;EAAiB,CAAC,GACvDJ,sBAAsB;EACxB,MAAM;IAAEK,cAAc,EAAEC;EAAsB,CAAC,GAAGF,gBAAgB;EAClE,MAAMC,cAAc,GAAGC,qBAAqB,CAACL,KAAK,EAAEC,gBAAgB,CAAC;EACrE,MAAMK,mBAAmB,GAAG;IAC1BC,KAAK,EAAE,CAACV,oBAAoB,CAACK,WAAW,CAAC;EAC3C,CAAC;EACDb,WAAW,CAACiB,mBAAmB,EAAEF,cAAc,EAAEI,SAAS,CAAC;AAC7D;AAEA,OAAO,SAASC,2BAA2BA,CACzCV,sBAA8C,EAC9CC,KAAoC,EACpC;EACA,SAAS;;EACT,MAAM;IAAEC,gBAAgB;IAAES,gBAAgB;IAAEP;EAAiB,CAAC,GAC5DJ,sBAAsB;EACxB,MAAM;IAAEY,mBAAmB,EAAEC;EAA2B,CAAC,GAAGT,gBAAgB;EAC5E,MAAMQ,mBAAmB,GAAGC,0BAA0B,CACpDZ,KAAK,EACLC,gBACF,CAAC;EACD,MAAMY,wBAAwB,GAAG;IAC/BN,KAAK,EAAE,CAACV,oBAAoB,CAACa,gBAAgB,CAAC;EAChD,CAAC;EACDrB,WAAW,CAACwB,wBAAwB,EAAEF,mBAAmB,EAAEH,SAAS,CAAC;AACvE;AAEA,OAAO,SAASM,UAAUA,CACxBf,sBAA8C,EAC9CC,KAAoC,EACpC;EACA,SAAS;;EACTF,sBAAsB,CAACC,sBAAsB,EAAEC,KAAK,CAAC;EACrDS,2BAA2B,CAACV,sBAAsB,EAAEC,KAAK,CAAC;AAC5D","ignoreList":[]}
@@ -0,0 +1,5 @@
1
+ 'use strict';
2
+
3
+ export { default as updateProps } from "./updateProps.js";
4
+ export { updatePropsJestWrapper } from "./updateProps.js";
5
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["default","updateProps","updatePropsJestWrapper"],"sourceRoot":"../../../src","sources":["updateProps/index.ts"],"mappings":"AAAA,YAAY;;AAEZ,SAASA,OAAO,IAAIC,WAAW,QAAQ,kBAAe;AACtD,SAASC,sBAAsB,QAAQ,kBAAe","ignoreList":[]}
@@ -0,0 +1,115 @@
1
+ 'use strict';
2
+
3
+ import { ReanimatedError } from "../errors.js";
4
+ const INDEX_X = 0;
5
+ const INDEX_Y = 1;
6
+ const INDEX_Z = 2;
7
+
8
+ // Implementation based on https://github.com/facebook/react-native/blob/main/packages/react-native/Libraries/StyleSheet/processTransformOrigin.js
9
+ function validateTransformOrigin(transformOrigin) {
10
+ 'worklet';
11
+
12
+ if (transformOrigin.length !== 3) {
13
+ throw new ReanimatedError('Transform origin must have exactly 3 values.');
14
+ }
15
+ const [x, y, z] = transformOrigin;
16
+ if (!(typeof x === 'number' || typeof x === 'string' && x.endsWith('%'))) {
17
+ throw new ReanimatedError(`Transform origin x-position must be a number or a percentage string. Passed value: ${x}.`);
18
+ }
19
+ if (!(typeof y === 'number' || typeof y === 'string' && y.endsWith('%'))) {
20
+ throw new ReanimatedError(`Transform origin y-position must be a number or a percentage string. Passed value: ${y}.`);
21
+ }
22
+ if (typeof z !== 'number') {
23
+ throw new ReanimatedError(`Transform origin z-position must be a number. Passed value: ${z}.`);
24
+ }
25
+ }
26
+ export function processTransformOrigin(transformOriginIn) {
27
+ 'worklet';
28
+
29
+ let transformOrigin = Array.isArray(transformOriginIn) ? transformOriginIn : ['50%', '50%', 0];
30
+ if (typeof transformOriginIn === 'string') {
31
+ const transformOriginString = transformOriginIn;
32
+ const regex = /(top|bottom|left|right|center|\d+(?:%|px)|0)/gi;
33
+ const transformOriginArray = ['50%', '50%', 0];
34
+ let index = INDEX_X;
35
+ let matches;
36
+ while (matches = regex.exec(transformOriginString)) {
37
+ let nextIndex = index + 1;
38
+ const value = matches[0];
39
+ const valueLower = value.toLowerCase();
40
+ switch (valueLower) {
41
+ case 'left':
42
+ case 'right':
43
+ {
44
+ if (index !== INDEX_X) {
45
+ throw new ReanimatedError(`Transform-origin ${value} can only be used for x-position`);
46
+ }
47
+ transformOriginArray[INDEX_X] = valueLower === 'left' ? 0 : '100%';
48
+ break;
49
+ }
50
+ case 'top':
51
+ case 'bottom':
52
+ {
53
+ if (index === INDEX_Z) {
54
+ throw new ReanimatedError(`Transform-origin ${value} can only be used for y-position`);
55
+ }
56
+ transformOriginArray[INDEX_Y] = valueLower === 'top' ? 0 : '100%';
57
+
58
+ // Handle [[ center | left | right ] && [ center | top | bottom ]] <length>?
59
+ if (index === INDEX_X) {
60
+ const horizontal = regex.exec(transformOriginString);
61
+ if (horizontal == null) {
62
+ break;
63
+ }
64
+ switch (horizontal?.[0].toLowerCase()) {
65
+ case 'left':
66
+ transformOriginArray[INDEX_X] = 0;
67
+ break;
68
+ case 'right':
69
+ transformOriginArray[INDEX_X] = '100%';
70
+ break;
71
+ case 'center':
72
+ transformOriginArray[INDEX_X] = '50%';
73
+ break;
74
+ default:
75
+ throw new ReanimatedError(`Could not parse transform-origin: ${transformOriginString}`);
76
+ }
77
+ nextIndex = INDEX_Z;
78
+ }
79
+ break;
80
+ }
81
+ case 'center':
82
+ {
83
+ if (index === INDEX_Z) {
84
+ throw new ReanimatedError(`Transform-origin value ${value} cannot be used for z-position`);
85
+ }
86
+ transformOriginArray[index] = '50%';
87
+ break;
88
+ }
89
+ default:
90
+ {
91
+ if (value.endsWith('%')) {
92
+ transformOriginArray[index] = value;
93
+ } else {
94
+ const numericValue = parseFloat(value);
95
+ if (isNaN(numericValue)) {
96
+ throw new ReanimatedError(`Invalid numeric value in transform-origin: ${value}`);
97
+ }
98
+ transformOriginArray[index] = numericValue;
99
+ }
100
+ break;
101
+ }
102
+ }
103
+ index = nextIndex;
104
+ }
105
+ transformOrigin = transformOriginArray;
106
+ }
107
+ if (typeof transformOriginIn !== 'string' && !Array.isArray(transformOriginIn)) {
108
+ throw new ReanimatedError(`Invalid transformOrigin type: ${typeof transformOriginIn}`);
109
+ }
110
+ if (__DEV__) {
111
+ validateTransformOrigin(transformOrigin);
112
+ }
113
+ return transformOrigin;
114
+ }
115
+ //# sourceMappingURL=processTransformOrigin.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["ReanimatedError","INDEX_X","INDEX_Y","INDEX_Z","validateTransformOrigin","transformOrigin","length","x","y","z","endsWith","processTransformOrigin","transformOriginIn","Array","isArray","transformOriginString","regex","transformOriginArray","index","matches","exec","nextIndex","value","valueLower","toLowerCase","horizontal","numericValue","parseFloat","isNaN","__DEV__"],"sourceRoot":"../../../src","sources":["updateProps/processTransformOrigin.ts"],"mappings":"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","ignoreList":[]}
@@ -1,11 +1,12 @@
1
- /* eslint-disable @typescript-eslint/no-redundant-type-constituents */
1
+ /* eslint-disable @typescript-eslint/no-redundant-type-constituents, @typescript-eslint/no-explicit-any */
2
2
  'use strict';
3
3
 
4
- import { processColorsInProps } from "./Colors.js";
5
- import { ReanimatedError } from "./errors.js";
6
- import { isFabric, isJest, shouldBeUseWeb } from "./PlatformChecker.js";
7
- import { _updatePropsJS } from "./ReanimatedModule/js-reanimated/index.js";
8
- import { runOnUIImmediately } from "./threads.js";
4
+ import { processColorsInProps } from "../Colors.js";
5
+ import { ReanimatedError } from "../errors.js";
6
+ import { isFabric, isJest, shouldBeUseWeb } from "../PlatformChecker.js";
7
+ import { _updatePropsJS } from "../ReanimatedModule/js-reanimated/index.js";
8
+ import { runOnUIImmediately } from "../threads.js";
9
+ import { processTransformOrigin } from "./processTransformOrigin.js";
9
10
  let updateProps;
10
11
  if (shouldBeUseWeb()) {
11
12
  updateProps = (viewDescriptors, updates, isAnimatedProps) => {
@@ -21,10 +22,8 @@ if (shouldBeUseWeb()) {
21
22
  'worklet';
22
23
 
23
24
  processColorsInProps(updates);
24
- if (updates.transformOrigin) {
25
- if (!Array.isArray(updates.transformOrigin)) {
26
- throw new ReanimatedError('Please use transformOrigin in array form');
27
- }
25
+ if ('transformOrigin' in updates) {
26
+ updates.transformOrigin = processTransformOrigin(updates.transformOrigin);
28
27
  }
29
28
  global.UpdatePropsManager.update(viewDescriptors, updates);
30
29
  };
@@ -113,4 +112,4 @@ if (shouldBeUseWeb()) {
113
112
  * This used to be `SharedValue<Descriptors[]>` but objects holding just a
114
113
  * single `value` prop are fine too.
115
114
  */
116
- //# sourceMappingURL=UpdateProps.js.map
115
+ //# sourceMappingURL=updateProps.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["processColorsInProps","ReanimatedError","isFabric","isJest","shouldBeUseWeb","_updatePropsJS","runOnUIImmediately","processTransformOrigin","updateProps","viewDescriptors","updates","isAnimatedProps","value","forEach","viewDescriptor","component","tag","transformOrigin","global","UpdatePropsManager","update","updatePropsJestWrapper","animatedValues","adapters","adapter","current","createUpdatePropsManager","operations","push","shadowNodeWrapper","length","queueMicrotask","flush","_updatePropsFabric","name","_updatePropsPaper","maybeThrowError","Proxy","get","set"],"sourceRoot":"../../../src","sources":["updateProps/updateProps.ts"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"Colors.d.ts","sourceRoot":"","sources":["../../src/Colors.ts"],"names":[],"mappings":"AACA;;;;GAIG;AAGH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAUhD,UAAU,GAAG;IACX,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;CACX;AAgJD,wBAAgB,SAAS,CAAC,IAAI,EAAE,gBAAgB,GAAG,IAAI,CAKtD;AAgKD,eAAO,MAAM,eAAe,UAyB1B,CAAC;AAOH,wBAAgB,cAAc,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI,CAiJ5D;AAED,eAAO,MAAM,OAAO,MAAO,MAAM,KAAG,MAGnC,CAAC;AAEF,eAAO,MAAM,GAAG,MAAO,MAAM,KAAG,MAG/B,CAAC;AAEF,eAAO,MAAM,KAAK,MAAO,MAAM,KAAG,MAGjC,CAAC;AAEF,eAAO,MAAM,IAAI,MAAO,MAAM,KAAG,MAGhC,CAAC;AAEF,eAAO,MAAM,SAAS,MACjB,MAAM,KACN,MAAM,KACN,MAAM,qBAER,MAAM,GAAG,MAKX,CAAC;AAEF;;;;;GAKG;AACH,wBAAgB,QAAQ,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,GAAG,CA4B7D;AA4CD,eAAO,MAAM,UAAU,MAClB,MAAM,KACN,MAAM,KACN,MAAM,KACN,MAAM,KACR,MAAM,GAAG,MAIX,CAAC;AAsBF,wBAAgB,OAAO,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAM/C;AAID,wBAAgB,YAAY,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI,GAAG,SAAS,CAoBtE;AAED,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,UAAU,QAwBrD;AAED,MAAM,MAAM,gBAAgB,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;AAEhE,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,GAAG,gBAAgB,CAQ9D;AAED,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,gBAAgB,GAAG,MAAM,CAMnE;AAED,wBAAgB,aAAa,CAC3B,IAAI,EAAE,gBAAgB,EACtB,KAAK,SAAM,GACV,gBAAgB,CAQlB;AAED,wBAAgB,YAAY,CAC1B,IAAI,EAAE,gBAAgB,EACtB,KAAK,SAAM,GACV,gBAAgB,CAQlB"}
1
+ {"version":3,"file":"Colors.d.ts","sourceRoot":"","sources":["../../src/Colors.ts"],"names":[],"mappings":"AACA;;;;GAIG;AAGH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAUhD,UAAU,GAAG;IACX,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;CACX;AAgJD,wBAAgB,SAAS,CAAC,IAAI,EAAE,gBAAgB,GAAG,IAAI,CAKtD;AAgKD,eAAO,MAAM,eAAe,UAyB1B,CAAC;AAOH,wBAAgB,cAAc,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI,CAiJ5D;AAED,eAAO,MAAM,OAAO,MAAO,MAAM,KAAG,MAGnC,CAAC;AAEF,eAAO,MAAM,GAAG,MAAO,MAAM,KAAG,MAG/B,CAAC;AAEF,eAAO,MAAM,KAAK,MAAO,MAAM,KAAG,MAGjC,CAAC;AAEF,eAAO,MAAM,IAAI,MAAO,MAAM,KAAG,MAGhC,CAAC;AAEF,eAAO,MAAM,SAAS,MACjB,MAAM,KACN,MAAM,KACN,MAAM,qBAER,MAAM,GAAG,MAKX,CAAC;AAEF;;;;;GAKG;AACH,wBAAgB,QAAQ,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,GAAG,CA4B7D;AA4CD,eAAO,MAAM,UAAU,MAClB,MAAM,KACN,MAAM,KACN,MAAM,KACN,MAAM,KACR,MAAM,GAAG,MAIX,CAAC;AA4BF,wBAAgB,OAAO,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAM/C;AAID,wBAAgB,YAAY,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI,GAAG,SAAS,CAoBtE;AAED,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,UAAU,QAwBrD;AAED,MAAM,MAAM,gBAAgB,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;AAEhE,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,GAAG,gBAAgB,CAQ9D;AAED,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,gBAAgB,GAAG,MAAM,CAMnE;AAED,wBAAgB,aAAa,CAC3B,IAAI,EAAE,gBAAgB,EACtB,KAAK,SAAM,GACV,gBAAgB,CAQlB;AAED,wBAAgB,YAAY,CAC1B,IAAI,EAAE,gBAAgB,EACtB,KAAK,SAAM,GACV,gBAAgB,CAQlB"}
@@ -1,7 +1,7 @@
1
1
  /// <reference types="react" />
2
2
  import type { IAnimatedComponentInternal, IPropsFilter } from './commonTypes';
3
3
  export declare class PropsFilter implements IPropsFilter {
4
- private _initialStyle;
4
+ private _initialPropsMap;
5
5
  filterNonAnimatedProps(component: React.Component<unknown, unknown> & IAnimatedComponentInternal): Record<string, unknown>;
6
6
  }
7
7
  //# sourceMappingURL=PropsFilter.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"PropsFilter.d.ts","sourceRoot":"","sources":["../../../src/createAnimatedComponent/PropsFilter.tsx"],"names":[],"mappings":";AAOA,OAAO,KAAK,EAGV,0BAA0B,EAE1B,YAAY,EACb,MAAM,eAAe,CAAC;AASvB,qBAAa,WAAY,YAAW,YAAY;IAC9C,OAAO,CAAC,aAAa,CAAM;IAEpB,sBAAsB,CAC3B,SAAS,EAAE,KAAK,CAAC,SAAS,CAAC,OAAO,EAAE,OAAO,CAAC,GAAG,0BAA0B,GACxE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;CAgE3B"}
1
+ {"version":3,"file":"PropsFilter.d.ts","sourceRoot":"","sources":["../../../src/createAnimatedComponent/PropsFilter.tsx"],"names":[],"mappings":";AAQA,OAAO,KAAK,EAGV,0BAA0B,EAE1B,YAAY,EACb,MAAM,eAAe,CAAC;AASvB,qBAAa,WAAY,YAAW,YAAY;IAC9C,OAAO,CAAC,gBAAgB,CAA8C;IAE/D,sBAAsB,CAC3B,SAAS,EAAE,KAAK,CAAC,SAAS,CAAC,OAAO,EAAE,OAAO,CAAC,GAAG,0BAA0B,GACxE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;CAmE3B"}
@@ -3,5 +3,5 @@
3
3
  * version used to build the native part of the library in runtime. Remember to
4
4
  * keep this in sync with the version declared in `package.json`
5
5
  */
6
- export declare const jsVersion = "3.17.3";
6
+ export declare const jsVersion = "3.17.5";
7
7
  //# sourceMappingURL=jsVersion.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"processBoxShadow.d.ts","sourceRoot":"","sources":["../../src/processBoxShadow.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAkB,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAErE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,GAAG,CAAC;AAqGpC,KAAK,eAAe,GAAG;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,GAAG,gBAAgB,CAAC;IACvC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,UAAU,iCA6EjD"}
1
+ {"version":3,"file":"processBoxShadow.d.ts","sourceRoot":"","sources":["../../src/processBoxShadow.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAkB,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAErE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,GAAG,CAAC;AAyGpC,KAAK,eAAe,GAAG;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,GAAG,gBAAgB,CAAC;IACvC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,UAAU,iCAqFjD"}
@@ -0,0 +1,3 @@
1
+ export { default as updateProps } from './updateProps';
2
+ export { updatePropsJestWrapper } from './updateProps';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/updateProps/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,eAAe,CAAC;AACvD,OAAO,EAAE,sBAAsB,EAAE,MAAM,eAAe,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare function processTransformOrigin(transformOriginIn: Array<string | number> | string | undefined): Array<string | number>;
2
+ //# sourceMappingURL=processTransformOrigin.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"processTransformOrigin.d.ts","sourceRoot":"","sources":["../../../src/updateProps/processTransformOrigin.ts"],"names":[],"mappings":"AA+BA,wBAAgB,sBAAsB,CACpC,iBAAiB,EAAE,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC,GAAG,MAAM,GAAG,SAAS,GAC7D,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC,CA+GxB"}
@@ -1,13 +1,9 @@
1
1
  import type { MutableRefObject } from 'react';
2
- import type { AnimatedStyle, StyleProps } from './commonTypes';
3
- import type { Descriptor } from './hook/commonTypes';
2
+ import type { AnimatedStyle, StyleProps } from '../commonTypes';
3
+ import type { Descriptor } from '../hook/commonTypes';
4
4
  declare let updateProps: (viewDescriptors: ViewDescriptorsWrapper, updates: StyleProps | AnimatedStyle<any>, isAnimatedProps?: boolean) => void;
5
5
  export declare const updatePropsJestWrapper: (viewDescriptors: ViewDescriptorsWrapper, updates: AnimatedStyle<any>, animatedValues: MutableRefObject<AnimatedStyle<any>>, adapters: ((updates: AnimatedStyle<any>) => void)[]) => void;
6
6
  export default updateProps;
7
- export interface UpdatePropsManager {
8
- update(viewDescriptors: ViewDescriptorsWrapper, updates: StyleProps | AnimatedStyle<any>): void;
9
- flush(): void;
10
- }
11
7
  /**
12
8
  * This used to be `SharedValue<Descriptors[]>` but objects holding just a
13
9
  * single `value` prop are fine too.
@@ -15,4 +11,4 @@ export interface UpdatePropsManager {
15
11
  interface ViewDescriptorsWrapper {
16
12
  value: Readonly<Descriptor[]>;
17
13
  }
18
- //# sourceMappingURL=UpdateProps.d.ts.map
14
+ //# sourceMappingURL=updateProps.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"updateProps.d.ts","sourceRoot":"","sources":["../../../src/updateProps/updateProps.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,OAAO,CAAC;AAG9C,OAAO,KAAK,EACV,aAAa,EAEb,UAAU,EACX,MAAM,gBAAgB,CAAC;AAExB,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAOtD,QAAA,IAAI,WAAW,EAAE,CACf,eAAe,EAAE,sBAAsB,EACvC,OAAO,EAAE,UAAU,GAAG,aAAa,CAAC,GAAG,CAAC,EACxC,eAAe,CAAC,EAAE,OAAO,KACtB,IAAI,CAAC;AAqBV,eAAO,MAAM,sBAAsB,oBAChB,sBAAsB,WAC9B,cAAc,GAAG,CAAC,kBACX,iBAAiB,cAAc,GAAG,CAAC,CAAC,uBAC/B,cAAc,GAAG,CAAC,KAAK,IAAI,QAC/C,IAUF,CAAC;AAEF,eAAe,WAAW,CAAC;AAyF3B;;;GAGG;AACH,UAAU,sBAAsB;IAC9B,KAAK,EAAE,QAAQ,CAAC,UAAU,EAAE,CAAC,CAAC;CAC/B"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "react-native-reanimated",
3
- "version": "3.17.3",
3
+ "version": "3.17.5",
4
4
  "description": "More powerful alternative to Animated library for React Native.",
5
5
  "scripts": {
6
6
  "test": "jest",
@@ -102,10 +102,10 @@
102
102
  "@babel/core": "^7.25.2",
103
103
  "@babel/preset-env": "^7.25.3",
104
104
  "@babel/types": "^7.20.0",
105
- "@react-native/babel-preset": "0.78.0",
106
- "@react-native/eslint-config": "0.78.0",
107
- "@react-native/metro-config": "0.78.0",
108
- "@react-native/typescript-config": "0.78.0",
105
+ "@react-native/babel-preset": "0.79.0-rc.4",
106
+ "@react-native/eslint-config": "0.79.0-rc.4",
107
+ "@react-native/metro-config": "0.79.0-rc.4",
108
+ "@react-native/typescript-config": "0.79.0-rc.4",
109
109
  "@testing-library/jest-native": "^4.0.4",
110
110
  "@testing-library/react-hooks": "^8.0.0",
111
111
  "@testing-library/react-native": "^13.0.1",
@@ -144,9 +144,9 @@
144
144
  "madge": "^5.0.1",
145
145
  "prettier": "^3.3.3",
146
146
  "react": "19.0.0",
147
- "react-native": "0.78.0",
147
+ "react-native": "0.79.0-rc.4",
148
148
  "react-native-builder-bob": "patch:react-native-builder-bob@npm%3A0.33.1#~/.yarn/patches/react-native-builder-bob-npm-0.33.1-383d9e23a5.patch",
149
- "react-native-gesture-handler": "2.24.0",
149
+ "react-native-gesture-handler": "2.25.0",
150
150
  "react-native-web": "0.19.13",
151
151
  "react-test-renderer": "19.0.0",
152
152
  "shelljs": "^0.8.5",
package/src/Colors.ts CHANGED
@@ -631,22 +631,28 @@ export const hsvToColor = (
631
631
 
632
632
  function processColorInitially(color: unknown): number | null | undefined {
633
633
  'worklet';
634
- if (color === null || color === undefined || typeof color === 'number') {
634
+ if (color === null || color === undefined) {
635
635
  return color;
636
636
  }
637
637
 
638
- let normalizedColor = normalizeColor(color);
638
+ let colorNumber: number;
639
639
 
640
- if (normalizedColor === null || normalizedColor === undefined) {
641
- return undefined;
642
- }
640
+ if (typeof color === 'number') {
641
+ colorNumber = color;
642
+ } else {
643
+ const normalizedColor = normalizeColor(color);
644
+ if (normalizedColor === null || normalizedColor === undefined) {
645
+ return undefined;
646
+ }
643
647
 
644
- if (typeof normalizedColor !== 'number') {
645
- return null;
648
+ if (typeof normalizedColor !== 'number') {
649
+ return null;
650
+ }
651
+
652
+ colorNumber = normalizedColor;
646
653
  }
647
654
 
648
- normalizedColor = ((normalizedColor << 24) | (normalizedColor >>> 8)) >>> 0; // alpha rgb
649
- return normalizedColor;
655
+ return ((colorNumber << 24) | (colorNumber >>> 8)) >>> 0; // alpha rgb
650
656
  }
651
657
 
652
658
  export function isColor(value: unknown): boolean {
@@ -3,7 +3,7 @@ import type { StyleProps } from '../commonTypes';
3
3
  import { adaptViewConfig } from '../ConfigHelper';
4
4
  import { isSharedValue } from '../isSharedValue';
5
5
  import { startMapper, stopMapper } from '../mappers';
6
- import updateProps from '../UpdateProps';
6
+ import { updateProps } from '../updateProps';
7
7
  import type { ViewDescriptorsSet } from '../ViewDescriptorsSet';
8
8
  import { makeViewDescriptorsSet } from '../ViewDescriptorsSet';
9
9
  import type {
@@ -2,6 +2,7 @@
2
2
 
3
3
  import { initialUpdaterRun } from '../animation';
4
4
  import type { StyleProps } from '../commonTypes';
5
+ import type { AnimatedStyleHandle } from '../hook/commonTypes';
5
6
  import { isSharedValue } from '../isSharedValue';
6
7
  import { isChromeDebugger } from '../PlatformChecker';
7
8
  import { WorkletEventHandler } from '../WorkletEventHandler';
@@ -21,7 +22,7 @@ function dummyListener() {
21
22
  }
22
23
 
23
24
  export class PropsFilter implements IPropsFilter {
24
- private _initialStyle = {};
25
+ private _initialPropsMap = new Map<AnimatedStyleHandle, StyleProps>();
25
26
 
26
27
  public filterNonAnimatedProps(
27
28
  component: React.Component<unknown, unknown> & IAnimatedComponentInternal
@@ -29,22 +30,25 @@ export class PropsFilter implements IPropsFilter {
29
30
  const inputProps =
30
31
  component.props as AnimatedComponentProps<InitialComponentProps>;
31
32
  const props: Record<string, unknown> = {};
33
+
32
34
  for (const key in inputProps) {
33
35
  const value = inputProps[key];
34
36
  if (key === 'style') {
35
37
  const styleProp = inputProps.style;
36
38
  const styles = flattenArray<StyleProps>(styleProp ?? []);
39
+
37
40
  const processedStyle: StyleProps[] = styles.map((style) => {
38
41
  if (style && style.viewDescriptors) {
39
- // this is how we recognize styles returned by useAnimatedStyle
42
+ const handle = style as AnimatedStyleHandle;
43
+
40
44
  if (component._isFirstRender) {
41
- this._initialStyle = {
42
- ...style.initial.value,
43
- ...this._initialStyle,
44
- ...initialUpdaterRun<StyleProps>(style.initial.updater),
45
- };
45
+ this._initialPropsMap.set(handle, {
46
+ ...handle.initial.value,
47
+ ...initialUpdaterRun(handle.initial.updater),
48
+ } as StyleProps);
46
49
  }
47
- return this._initialStyle;
50
+
51
+ return this._initialPropsMap.get(handle) ?? {};
48
52
  } else if (hasInlineStyles(style)) {
49
53
  return getInlineStyle(style, component._isFirstRender);
50
54
  } else {
@@ -20,7 +20,7 @@ import type { AnimatedProps } from '../createAnimatedComponent/commonTypes';
20
20
  import { ReanimatedError } from '../errors';
21
21
  import { isJest, shouldBeUseWeb } from '../PlatformChecker';
22
22
  import { processBoxShadow } from '../processBoxShadow';
23
- import updateProps, { updatePropsJestWrapper } from '../UpdateProps';
23
+ import { updateProps, updatePropsJestWrapper } from '../updateProps';
24
24
  import type { ViewDescriptorsSet } from '../ViewDescriptorsSet';
25
25
  import { makeViewDescriptorsSet } from '../ViewDescriptorsSet';
26
26
  import type {
@@ -212,7 +212,7 @@ function styleUpdater(
212
212
  let hasAnimations = false;
213
213
  let frameTimestamp: number | undefined;
214
214
  let hasNonAnimatedValues = false;
215
- if (!SHOULD_BE_USE_WEB && typeof newValues.boxShadow === 'string') {
215
+ if (!SHOULD_BE_USE_WEB && newValues.boxShadow) {
216
216
  processBoxShadow(newValues);
217
217
  }
218
218
  for (const key in newValues) {