Skip to content

Commit 08343f3

Browse files
committed
feat: reanimated as peer dependency
1 parent ad9f3f0 commit 08343f3

6 files changed

Lines changed: 84 additions & 2 deletions

File tree

babel.config.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
11
module.exports = {
22
presets: ['module:@react-native/babel-preset'],
3+
plugins: ['react-native-worklets/plugin'],
34
};

docs/docs/guides/01-getting-started.md

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,16 @@ npm install react-native-paper
1818
npm install react-native-safe-area-context
1919
```
2020

21+
- You also need to install [react-native-reanimated](https://docs.swmansion.com/react-native-reanimated/) and [react-native-worklets](https://docs.swmansion.com/react-native-worklets/) for animations.
22+
23+
```bash npm2yarn
24+
npm install react-native-reanimated react-native-worklets
25+
```
26+
27+
:::note
28+
If you're using a bare React Native project (not Expo), you need to add `react-native-worklets/plugin` to your `babel.config.js` plugins array. See the [Reanimated installation guide](https://docs.swmansion.com/react-native-reanimated/docs/fundamentals/getting-started/) for details.
29+
:::
30+
2131
Additionaly for `iOS` platform there is a requirement to link the native parts of the library:
2232

2333
```bash

jestSetupAfterEnv.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
require('react-native-reanimated').setUpTests();

package.json

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -96,7 +96,9 @@
9696
"react-dom": "18.3.1",
9797
"react-native": "0.82.1",
9898
"react-native-builder-bob": "^0.21.3",
99+
"react-native-reanimated": "^4.3.0",
99100
"react-native-safe-area-context": "5.5.2",
101+
"react-native-worklets": "^0.8.1",
100102
"react-test-renderer": "19.1.1",
101103
"release-it": "^13.4.0",
102104
"rimraf": "^3.0.2",
@@ -105,7 +107,9 @@
105107
"peerDependencies": {
106108
"react": "*",
107109
"react-native": "*",
108-
"react-native-safe-area-context": "*"
110+
"react-native-reanimated": ">=4.3.0",
111+
"react-native-safe-area-context": "*",
112+
"react-native-worklets": ">=0.8.1"
109113
},
110114
"husky": {
111115
"hooks": {
@@ -119,6 +123,7 @@
119123
"<rootDir>/testSetup.js"
120124
],
121125
"setupFilesAfterEnv": [
126+
"<rootDir>/jestSetupAfterEnv.js",
122127
"@testing-library/jest-native/extend-expect"
123128
],
124129
"cacheDirectory": "./cache/jest",

testSetup.js

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,10 @@ jest.useFakeTimers();
44

55
jest.mock('react-native-safe-area-context', () => mockSafeAreaContext);
66

7+
jest.mock('react-native-worklets', () =>
8+
require('react-native-worklets/src/mock')
9+
);
10+
711
jest.mock('@react-native-vector-icons/material-design-icons', () => {
812
const React = require('react');
913
const { Text } = require('react-native');

yarn.lock

Lines changed: 62 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1972,7 +1972,7 @@ __metadata:
19721972
languageName: node
19731973
linkType: hard
19741974

1975-
"@babel/preset-typescript@npm:^7.12.1, @babel/preset-typescript@npm:^7.16.7, @babel/preset-typescript@npm:^7.17.12, @babel/preset-typescript@npm:^7.18.6, @babel/preset-typescript@npm:^7.23.0":
1975+
"@babel/preset-typescript@npm:^7.12.1, @babel/preset-typescript@npm:^7.16.7, @babel/preset-typescript@npm:^7.17.12, @babel/preset-typescript@npm:^7.18.6, @babel/preset-typescript@npm:^7.23.0, @babel/preset-typescript@npm:^7.27.1":
19761976
version: 7.28.5
19771977
resolution: "@babel/preset-typescript@npm:7.28.5"
19781978
dependencies:
@@ -20025,6 +20025,16 @@ __metadata:
2002520025
languageName: node
2002620026
linkType: hard
2002720027

20028+
"react-native-is-edge-to-edge@npm:^1.3.1":
20029+
version: 1.3.1
20030+
resolution: "react-native-is-edge-to-edge@npm:1.3.1"
20031+
peerDependencies:
20032+
react: "*"
20033+
react-native: "*"
20034+
checksum: 10c0/28cebd5f1f3632864ff5e342278721d1e5e38627ae73859a8814012116ef15c629fee7137a6c9c97bb05d94bbe639b0b47e69b36fc2735ab53ed31570140663f
20035+
languageName: node
20036+
linkType: hard
20037+
2002820038
"react-native-monorepo-config@npm:^0.1.6":
2002920039
version: 0.1.10
2003020040
resolution: "react-native-monorepo-config@npm:0.1.10"
@@ -20120,7 +20130,9 @@ __metadata:
2012020130
react-dom: "npm:18.3.1"
2012120131
react-native: "npm:0.82.1"
2012220132
react-native-builder-bob: "npm:^0.21.3"
20133+
react-native-reanimated: "npm:^4.3.0"
2012320134
react-native-safe-area-context: "npm:5.5.2"
20135+
react-native-worklets: "npm:^0.8.1"
2012420136
react-test-renderer: "npm:19.1.1"
2012520137
release-it: "npm:^13.4.0"
2012620138
rimraf: "npm:^3.0.2"
@@ -20129,10 +20141,26 @@ __metadata:
2012920141
peerDependencies:
2013020142
react: "*"
2013120143
react-native: "*"
20144+
react-native-reanimated: ">=4.3.0"
2013220145
react-native-safe-area-context: "*"
20146+
react-native-worklets: ">=0.8.1"
2013320147
languageName: unknown
2013420148
linkType: soft
2013520149

20150+
"react-native-reanimated@npm:^4.3.0":
20151+
version: 4.3.0
20152+
resolution: "react-native-reanimated@npm:4.3.0"
20153+
dependencies:
20154+
react-native-is-edge-to-edge: "npm:^1.3.1"
20155+
semver: "npm:^7.7.3"
20156+
peerDependencies:
20157+
react: "*"
20158+
react-native: 0.81 - 0.85
20159+
react-native-worklets: 0.8.x
20160+
checksum: 10c0/e882660f8876b5571b4cb6fe99cbf123f7329e1282376cd92fb4b45991a765aa364b295781acea2658bee1b0196ea122b624be63b3a906c06a72c2a67ab56486
20161+
languageName: node
20162+
linkType: hard
20163+
2013620164
"react-native-reanimated@npm:~4.1.1":
2013720165
version: 4.1.6
2013820166
resolution: "react-native-reanimated@npm:4.1.6"
@@ -20252,6 +20280,30 @@ __metadata:
2025220280
languageName: node
2025320281
linkType: hard
2025420282

20283+
"react-native-worklets@npm:^0.8.1":
20284+
version: 0.8.1
20285+
resolution: "react-native-worklets@npm:0.8.1"
20286+
dependencies:
20287+
"@babel/plugin-transform-arrow-functions": "npm:^7.27.1"
20288+
"@babel/plugin-transform-class-properties": "npm:^7.27.1"
20289+
"@babel/plugin-transform-classes": "npm:^7.28.4"
20290+
"@babel/plugin-transform-nullish-coalescing-operator": "npm:^7.27.1"
20291+
"@babel/plugin-transform-optional-chaining": "npm:^7.27.1"
20292+
"@babel/plugin-transform-shorthand-properties": "npm:^7.27.1"
20293+
"@babel/plugin-transform-template-literals": "npm:^7.27.1"
20294+
"@babel/plugin-transform-unicode-regex": "npm:^7.27.1"
20295+
"@babel/preset-typescript": "npm:^7.27.1"
20296+
convert-source-map: "npm:^2.0.0"
20297+
semver: "npm:^7.7.3"
20298+
peerDependencies:
20299+
"@babel/core": "*"
20300+
"@react-native/metro-config": "*"
20301+
react: "*"
20302+
react-native: 0.81 - 0.85
20303+
checksum: 10c0/a82edbd65b09a31d973497dac899adcd618677b56f7e5c460fd9f3b1b4ef1547b7bfd2edaa644d1ebf866bf70658bdbd1314c9d0ab2856e98c6975d0e97fd449
20304+
languageName: node
20305+
linkType: hard
20306+
2025520307
"react-native@npm:0.81.4":
2025620308
version: 0.81.4
2025720309
resolution: "react-native@npm:0.81.4"
@@ -21701,6 +21753,15 @@ __metadata:
2170121753
languageName: node
2170221754
linkType: hard
2170321755

21756+
"semver@npm:^7.7.3":
21757+
version: 7.7.4
21758+
resolution: "semver@npm:7.7.4"
21759+
bin:
21760+
semver: bin/semver.js
21761+
checksum: 10c0/5215ad0234e2845d4ea5bb9d836d42b03499546ddafb12075566899fc617f68794bb6f146076b6881d755de17d6c6cc73372555879ec7dce2c2feee947866ad2
21762+
languageName: node
21763+
linkType: hard
21764+
2170421765
"semver@npm:~7.5.4":
2170521766
version: 7.5.4
2170621767
resolution: "semver@npm:7.5.4"

0 commit comments

Comments
 (0)