react-native-htmlview icon indicating copy to clipboard operation
react-native-htmlview copied to clipboard

Error: Invariant Violation: ViewPropTypes has been removed from React Native. Migrate to ViewPropTypes exported from 'deprecated-react-native-prop-types'.

Open YogeshBhatt opened this issue 3 years ago • 3 comments

Hi! 👋

Firstly, thanks for your work on this project! 🙂

Today I used patch-package to patch [email protected] for the project I'm working on.

Here is the diff that solved my problem:

diff --git a/node_modules/react-native-htmlview/HTMLView.js b/node_modules/react-native-htmlview/HTMLView.js
index 43f8b7e..654699c 100644
--- a/node_modules/react-native-htmlview/HTMLView.js
+++ b/node_modules/react-native-htmlview/HTMLView.js
@@ -1,13 +1,16 @@
 import React, {PureComponent} from 'react';
 import PropTypes from 'prop-types';
 import htmlToElement from './htmlToElement';
-import {Linking, Platform, StyleSheet, View, ViewPropTypes} from 'react-native';
+import {Linking, Platform, StyleSheet, View} from 'react-native';
 
 const boldStyle = {fontWeight: 'bold'};
 const italicStyle = {fontStyle: 'italic'};
 const underlineStyle = {textDecorationLine: 'underline'};
 const strikethroughStyle = {textDecorationLine: 'line-through'};
 const codeStyle = {fontFamily: Platform.OS === 'ios' ? 'Menlo' : 'monospace'};
+const ViewPropTypes = typeof document !== 'undefined' || Platform.OS === 'web'
+  ? PropTypes.shape({style: PropTypes.object})
+  : require('react-native').ViewPropTypes || View.propTypes;
 
 const baseStyles = StyleSheet.create({
   b: boldStyle,

This issue body was partially generated by patch-package.

YogeshBhatt avatar Oct 13 '22 11:10 YogeshBhatt

So how can we add these change to this library! I mean without changing files in node_modules!

ankitjpk avatar Jan 11 '23 11:01 ankitjpk

@YogeshBhatt I created a fork with these changes, Is this alright or is it there some other better way

Jonnathangte68 avatar Jan 19 '23 12:01 Jonnathangte68

Hi! I solve my problem by simple installing the 'deprecated-react-native-prop-types' library and importing the ViewPropTypes from there

-import {Linking, Platform, StyleSheet, View, ViewPropTypes} from 'react-native';
+import { Linking, Platform, StyleSheet, View } from 'react-native';
+import { ViewPropTypes } from 'deprecated-react-native-prop-types'

lucascaldasb avatar Mar 07 '23 19:03 lucascaldasb