chore: Bump reanimated requirements (#149)

* Bump the reanimated requirement to 2.2.0 and above

* bump versions podfile

* Simplify Frame Processor

* Add `'worklet'` note
This commit is contained in:
Marc Rousavy 2021-05-27 11:08:57 +02:00 committed by GitHub
parent a721f86c75
commit deb8beb688
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
10 changed files with 35 additions and 40 deletions

View File

@ -56,7 +56,7 @@ Because of the Frame Processor API's extensibility, you can even create your **c
<br /> <br />
:::note :::note
Frame Processors require [**react-native-reanimated**](https://github.com/software-mansion/react-native-reanimated) 2.1.0 or higher. Frame Processors require [**react-native-reanimated**](https://github.com/software-mansion/react-native-reanimated) 2.2.0 or higher.
::: :::
### Interacting with Frame Processors ### Interacting with Frame Processors

View File

@ -22,7 +22,7 @@ npx pod-install
VisionCamera requires **iOS 11 or higher**, and **Android-SDK version 21 or higher**. See [Troubleshooting](/docs/guides/troubleshooting) if you're having installation issues. VisionCamera requires **iOS 11 or higher**, and **Android-SDK version 21 or higher**. See [Troubleshooting](/docs/guides/troubleshooting) if you're having installation issues.
> **(Optional)** If you want to use [**Frame Processors**](/docs/guides/frame-processors), you need to install [**react-native-reanimated**](https://github.com/software-mansion/react-native-reanimated) 2.1.0 or higher. > **(Optional)** If you want to use [**Frame Processors**](/docs/guides/frame-processors), you need to install [**react-native-reanimated**](https://github.com/software-mansion/react-native-reanimated) 2.2.0 or higher.
## Updating manifests ## Updating manifests

View File

@ -289,7 +289,7 @@ PODS:
- React-RCTText - React-RCTText
- RNGestureHandler (1.10.3): - RNGestureHandler (1.10.3):
- React-Core - React-Core
- RNReanimated (2.1.0): - RNReanimated (2.2.0):
- DoubleConversion - DoubleConversion
- FBLazyVector - FBLazyVector
- FBReactNativeSpec - FBReactNativeSpec
@ -322,7 +322,7 @@ PODS:
- React - React
- RNVectorIcons (8.1.0): - RNVectorIcons (8.1.0):
- React-Core - React-Core
- VisionCamera (2.0.0): - VisionCamera (2.0.1):
- React - React
- React-callinvoker - React-callinvoker
- React-Core - React-Core
@ -487,10 +487,10 @@ SPEC CHECKSUMS:
ReactCommon: cfe2b7fd20e0dbd2d1185cd7d8f99633fbc5ff05 ReactCommon: cfe2b7fd20e0dbd2d1185cd7d8f99633fbc5ff05
ReactNativeNavigation: 63321d37e8172bdcc1fbb93e77cffc74a0ba6d20 ReactNativeNavigation: 63321d37e8172bdcc1fbb93e77cffc74a0ba6d20
RNGestureHandler: a479ebd5ed4221a810967000735517df0d2db211 RNGestureHandler: a479ebd5ed4221a810967000735517df0d2db211
RNReanimated: b8c8004b43446e3c2709fe64b2b41072f87428ad RNReanimated: 9c13c86454bfd54dab7505c1a054470bfecd2563
RNStaticSafeAreaInsets: 6103cf09647fa427186d30f67b0f5163c1ae8252 RNStaticSafeAreaInsets: 6103cf09647fa427186d30f67b0f5163c1ae8252
RNVectorIcons: 31cebfcf94e8cf8686eb5303ae0357da64d7a5a4 RNVectorIcons: 31cebfcf94e8cf8686eb5303ae0357da64d7a5a4
VisionCamera: 05d7d5d8df6513e61f6b6ad94d6c6befc73b780d VisionCamera: 117cb3364d4f23fb786a60a8942031ba34bb039a
Yoga: 8c8436d4171c87504c648ae23b1d81242bdf3bbf Yoga: 8c8436d4171c87504c648ae23b1d81242bdf3bbf
PODFILE CHECKSUM: 4b093c1d474775c2eac3268011e4b0b80929d3a2 PODFILE CHECKSUM: 4b093c1d474775c2eac3268011e4b0b80929d3a2

View File

@ -19,7 +19,7 @@
"react-native-gesture-handler": "^1.10.3", "react-native-gesture-handler": "^1.10.3",
"react-native-navigation": "7.8.4-snapshot.1439", "react-native-navigation": "7.8.4-snapshot.1439",
"react-native-pressable-opacity": "^1.0.4", "react-native-pressable-opacity": "^1.0.4",
"react-native-reanimated": "^2.1.0", "react-native-reanimated": "^2.2.0",
"react-native-static-safe-area-insets": "^2.1.1", "react-native-static-safe-area-insets": "^2.1.1",
"react-native-vector-icons": "^8.0.0", "react-native-vector-icons": "^8.0.0",
"react-native-video": "^5.1.1" "react-native-video": "^5.1.1"

View File

@ -4783,10 +4783,10 @@ react-native-pressable-opacity@^1.0.4:
resolved "https://registry.yarnpkg.com/react-native-pressable-opacity/-/react-native-pressable-opacity-1.0.4.tgz#391f33fdc25cb84551f2743a25eced892b9f30f7" resolved "https://registry.yarnpkg.com/react-native-pressable-opacity/-/react-native-pressable-opacity-1.0.4.tgz#391f33fdc25cb84551f2743a25eced892b9f30f7"
integrity sha512-DBIg7UoRiuBYiFEvx+XNMqH0OEx64WrSksXhT6Kq9XuyyKsThMNDqZ9G5QV7vfu7dU2/IctwIz5c0Xwkp4K3tA== integrity sha512-DBIg7UoRiuBYiFEvx+XNMqH0OEx64WrSksXhT6Kq9XuyyKsThMNDqZ9G5QV7vfu7dU2/IctwIz5c0Xwkp4K3tA==
react-native-reanimated@^2.1.0: react-native-reanimated@^2.2.0:
version "2.1.0" version "2.2.0"
resolved "https://registry.yarnpkg.com/react-native-reanimated/-/react-native-reanimated-2.1.0.tgz#b9ad04aee490e1e030d0a6cdaa43a14895d9a54d" resolved "https://registry.yarnpkg.com/react-native-reanimated/-/react-native-reanimated-2.2.0.tgz#a6412c56b4e591d1f00fac949f62d0c72c357c78"
integrity sha512-tlPvvcdf+X7HGQ7g/7npBFhwMznfdk7MHUc9gUB/kp2abSscXNe/kOVKlrNEOO4DS11rNOXc+llFxVFMuNk0zA== integrity sha512-lOJDd+5w1gY6DHGXG2jD1dsjzQmXQ2699HUc3IztvI2WP4zUT+UAA+zSG+5JiBS5DUnTL8YhhkmUQmr1KNGO5w==
dependencies: dependencies:
"@babel/plugin-transform-object-assign" "^7.10.4" "@babel/plugin-transform-object-assign" "^7.10.4"
fbjs "^3.0.0" fbjs "^3.0.0"

View File

@ -29,7 +29,7 @@
#define ENABLE_FRAME_PROCESSORS #define ENABLE_FRAME_PROCESSORS
#endif #endif
#else #else
#warning Your react-native-reanimated version is not compatible with VisionCamera, Frame Processors are disabled. Make sure you're using reanimated 2.1.0 or above! #warning Your react-native-reanimated version is not compatible with VisionCamera, Frame Processors are disabled. Make sure you're using reanimated 2.2.0 or above!
#endif #endif
#else #else
#warning The NativeReanimatedModule.h header could not be found, Frame Processors are disabled. If you want to use Frame Processors, make sure you install react-native-reanimated! #warning The NativeReanimatedModule.h header could not be found, Frame Processors are disabled. If you want to use Frame Processors, make sure you install react-native-reanimated!

View File

@ -89,14 +89,13 @@
"react": "17.0.2", "react": "17.0.2",
"react-native": "0.64.0", "react-native": "0.64.0",
"react-native-builder-bob": "^0.18.1", "react-native-builder-bob": "^0.18.1",
"react-native-reanimated": "^2.1.0", "react-native-reanimated": "^2.2.0",
"release-it": "^14.6.1", "release-it": "^14.6.1",
"typescript": "^4.2.4" "typescript": "^4.2.4"
}, },
"peerDependencies": { "peerDependencies": {
"react": "*", "react": "*",
"react-native": "*", "react-native": "*"
"react-native-reanimated": ">=2.1.0"
}, },
"jest": { "jest": {
"preset": "react-native", "preset": "react-native",

View File

@ -336,7 +336,7 @@ export class Camera extends React.PureComponent<CameraProps> {
private assertFrameProcessorsEnabled(): void { private assertFrameProcessorsEnabled(): void {
// @ts-expect-error JSI functions aren't typed // @ts-expect-error JSI functions aren't typed
if (global.setFrameProcessor == null || global.unsetFrameProcessor == null) if (global.setFrameProcessor == null || global.unsetFrameProcessor == null)
throw new Error('Frame Processors are not enabled. Make sure you install react-native-reanimated 2.1.0 or above!'); throw new Error('Frame Processors are not enabled. Make sure you install react-native-reanimated 2.2.0 or above!');
} }
/** /**

View File

@ -1,10 +1,12 @@
import { DependencyList, useCallback } from 'react'; import { DependencyList, useCallback } from 'react';
import type { Frame } from 'src/Frame'; import type { Frame } from 'src/Frame';
type FrameProcessor = (frame: Frame) => void;
/** /**
* Returns a memoized Frame Processor function wich you can pass to the `<Camera>`. (See ["Frame Processors"](https://cuvent.github.io/react-native-vision-camera/docs/guides/frame-processors)) * Returns a memoized Frame Processor function wich you can pass to the `<Camera>`. (See ["Frame Processors"](https://cuvent.github.io/react-native-vision-camera/docs/guides/frame-processors))
* *
* > If you are using the [react-hooks ESLint plugin](https://www.npmjs.com/package/eslint-plugin-react-hooks), make sure to add `useFrameProcessor` to `additionalHooks` inside your ESLint config. (See ["advanced configuration"](https://www.npmjs.com/package/eslint-plugin-react-hooks#advanced-configuration)) * Make sure to add the `'worklet'` directive to the top of the Frame Processor function, otherwise it will not get compiled into a worklet.
* *
* @param frameProcessor The Frame Processor * @param frameProcessor The Frame Processor
* @param dependencies The React dependencies which will be copied into the VisionCamera JS-Runtime. * @param dependencies The React dependencies which will be copied into the VisionCamera JS-Runtime.
@ -18,10 +20,4 @@ import type { Frame } from 'src/Frame';
* }, []) * }, [])
* ``` * ```
*/ */
export function useFrameProcessor(frameProcessor: (frame: Frame) => void, dependencies: DependencyList): (frame: Frame) => void { export const useFrameProcessor: (frameProcessor: FrameProcessor, dependencies: DependencyList) => FrameProcessor = useCallback;
return useCallback((frame: Frame) => {
'worklet';
return frameProcessor(frame);
// eslint-disable-next-line react-hooks/exhaustive-deps
}, dependencies);
}

View File

@ -7408,10 +7408,10 @@ react-native-codegen@^0.0.6:
jscodeshift "^0.11.0" jscodeshift "^0.11.0"
nullthrows "^1.1.1" nullthrows "^1.1.1"
react-native-reanimated@^2.1.0: react-native-reanimated@^2.2.0:
version "2.1.0" version "2.2.0"
resolved "https://registry.yarnpkg.com/react-native-reanimated/-/react-native-reanimated-2.1.0.tgz#b9ad04aee490e1e030d0a6cdaa43a14895d9a54d" resolved "https://registry.yarnpkg.com/react-native-reanimated/-/react-native-reanimated-2.2.0.tgz#a6412c56b4e591d1f00fac949f62d0c72c357c78"
integrity sha512-tlPvvcdf+X7HGQ7g/7npBFhwMznfdk7MHUc9gUB/kp2abSscXNe/kOVKlrNEOO4DS11rNOXc+llFxVFMuNk0zA== integrity sha512-lOJDd+5w1gY6DHGXG2jD1dsjzQmXQ2699HUc3IztvI2WP4zUT+UAA+zSG+5JiBS5DUnTL8YhhkmUQmr1KNGO5w==
dependencies: dependencies:
"@babel/plugin-transform-object-assign" "^7.10.4" "@babel/plugin-transform-object-assign" "^7.10.4"
fbjs "^3.0.0" fbjs "^3.0.0"