mastermoo / react-native-action-button

customizable multi-action-button component for react-native
MIT License
2.52k stars 569 forks source link

Invariant Violation: ViewPropTypes has been removed from React Native #377

Open ahmadsyed opened 1 year ago

ahmadsyed commented 1 year ago

Hi! 👋

Firstly, thanks for your work on this project! 🙂

Today I used patch-package to patch react-native-action-button@2.8.5 for the project I'm working on.

I am upgrading RN to 0.70. As react-native removed ViewPropType ,TextPropType support, I used this method to solve these dependency problems

Here is the diff that solved my problem:

diff --git a/node_modules/react-native-action-button/ActionButton.js b/node_modules/react-native-action-button/ActionButton.js
index b8306c2..7f58c89 100644
--- a/node_modules/react-native-action-button/ActionButton.js
+++ b/node_modules/react-native-action-button/ActionButton.js
@@ -7,6 +7,8 @@ import {
   Animated,
   TouchableOpacity,
 } from "react-native";
+import {TextPropTypes} from 'deprecated-react-native-prop-types';
+
 import ActionButtonItem from "./ActionButtonItem";
 import {
   shadowStyle,
@@ -363,7 +365,7 @@ ActionButton.propTypes = {
   bgColor: PropTypes.string,
   bgOpacity: PropTypes.number,
   buttonColor: PropTypes.string,
-  buttonTextStyle: Text.propTypes.style,
+  buttonTextStyle: TextPropTypes.style,
   buttonText: PropTypes.string,

   offsetX: PropTypes.number,

This issue body was partially generated by patch-package.

Base2526 commented 1 year ago

Hi, @ahmadsyed you can git clone custom package & modify react-native-action-button step

  1. Install deprecated-react-native-prop-types to your own projec

  2. clone react-native-action-button at path custom

  3. npm i --save ./path/xxxx/react-native-action-button

  4. modify follow top(@ahmadsyed)

    diff --git a/node_modules/react-native-action-button/ActionButton.js b/node_modules/react-native-action-button/ActionButton.js
    index b8306c2..7f58c89 100644
    --- a/node_modules/react-native-action-button/ActionButton.js
    +++ b/node_modules/react-native-action-button/ActionButton.js
    @@ -7,6 +7,8 @@ import {
    Animated,
    TouchableOpacity,
    } from "react-native";
    +import {TextPropTypes} from 'deprecated-react-native-prop-types';
    +
    import ActionButtonItem from "./ActionButtonItem";
    import {
    shadowStyle,
    @@ -363,7 +365,7 @@ ActionButton.propTypes = {
    bgColor: PropTypes.string,
    bgOpacity: PropTypes.number,
    buttonColor: PropTypes.string,
    -  buttonTextStyle: Text.propTypes.style,
    +  buttonTextStyle: TextPropTypes.style,
    buttonText: PropTypes.string,
    
    offsetX: PropTypes.number,
  5. import ActionButton from ' ./path/xxxx/react-native-action-button/ActionButton';

  6. enjoy