diff --git a/package.json b/package.json index e84cba1..d2d68e6 100644 --- a/package.json +++ b/package.json @@ -8,6 +8,7 @@ "lint": "eslint .", "start": "react-native start", "test": "jest", + "postinstall": "patch-package", "clean": "rm -rf ./node_modules/ && yarn", "clean-android": "cd ./android && ./gradlew clean", "build-android-release": "cd ./android && ./gradlew clean && ./gradlew app:assembleRelease", diff --git a/patches/react-native-snap-carousel+3.9.1.patch b/patches/react-native-snap-carousel+3.9.1.patch new file mode 100644 index 0000000..b96a2cf --- /dev/null +++ b/patches/react-native-snap-carousel+3.9.1.patch @@ -0,0 +1,124 @@ +diff --git a/node_modules/react-native-snap-carousel/src/carousel/Carousel.js b/node_modules/react-native-snap-carousel/src/carousel/Carousel.js +index dae71a3..860c13e 100644 +--- a/node_modules/react-native-snap-carousel/src/carousel/Carousel.js ++++ b/node_modules/react-native-snap-carousel/src/carousel/Carousel.js +@@ -1,5 +1,5 @@ + import React, { Component } from 'react'; +-import { Animated, Easing, FlatList, I18nManager, Platform, ScrollView, View, ViewPropTypes } from 'react-native'; ++import { Animated, Easing, FlatList, I18nManager, Platform, ScrollView, View } from 'react-native'; + import PropTypes from 'prop-types'; + import shallowCompare from 'react-addons-shallow-compare'; + import { +@@ -43,8 +43,8 @@ export default class Carousel extends Component { + autoplayDelay: PropTypes.number, + autoplayInterval: PropTypes.number, + callbackOffsetMargin: PropTypes.number, +- containerCustomStyle: ViewPropTypes ? ViewPropTypes.style : View.propTypes.style, +- contentContainerCustomStyle: ViewPropTypes ? ViewPropTypes.style : View.propTypes.style, ++ containerCustomStyle: PropTypes.oneOfType([PropTypes.object, PropTypes.array]), ++ contentContainerCustomStyle: PropTypes.oneOfType([PropTypes.object, PropTypes.array]), + enableMomentum: PropTypes.bool, + enableSnap: PropTypes.bool, + firstItem: PropTypes.number, +@@ -61,7 +61,7 @@ export default class Carousel extends Component { + scrollEnabled: PropTypes.bool, + scrollInterpolator: PropTypes.func, + slideInterpolatedStyle: PropTypes.func, +- slideStyle: ViewPropTypes ? ViewPropTypes.style : View.propTypes.style, ++ slideStyle: PropTypes.oneOfType([PropTypes.object, PropTypes.array]), + shouldOptimizeUpdates: PropTypes.bool, + swipeThreshold: PropTypes.number, + useScrollView: PropTypes.oneOfType([PropTypes.bool, PropTypes.func]), +@@ -151,9 +151,9 @@ export default class Carousel extends Component { + this._ignoreNextMomentum = false; + + // Warnings +- if (!ViewPropTypes) { +- console.warn('react-native-snap-carousel: It is recommended to use at least version 0.44 of React Native with the plugin'); +- } ++ // if (!ViewPropTypes) { ++ // console.warn('react-native-snap-carousel: It is recommended to use at least version 0.44 of React Native with the plugin'); ++ // } + if (!props.vertical && (!props.sliderWidth || !props.itemWidth)) { + console.error('react-native-snap-carousel: You need to specify both `sliderWidth` and `itemWidth` for horizontal carousels'); + } +diff --git a/node_modules/react-native-snap-carousel/src/pagination/Pagination.js b/node_modules/react-native-snap-carousel/src/pagination/Pagination.js +index 5c021cf..44aa287 100644 +--- a/node_modules/react-native-snap-carousel/src/pagination/Pagination.js ++++ b/node_modules/react-native-snap-carousel/src/pagination/Pagination.js +@@ -1,5 +1,5 @@ + import React, { PureComponent } from 'react'; +-import { I18nManager, Platform, View, ViewPropTypes } from 'react-native'; ++import { I18nManager, Platform, View } from 'react-native'; + import PropTypes from 'prop-types'; + import PaginationDot from './PaginationDot'; + import styles from './Pagination.style'; +@@ -14,16 +14,16 @@ export default class Pagination extends PureComponent { + dotsLength: PropTypes.number.isRequired, + activeOpacity: PropTypes.number, + carouselRef: PropTypes.object, +- containerStyle: ViewPropTypes ? ViewPropTypes.style : View.propTypes.style, ++ containerStyle: PropTypes.oneOfType([PropTypes.object, PropTypes.array]), + dotColor: PropTypes.string, +- dotContainerStyle: ViewPropTypes ? ViewPropTypes.style : View.propTypes.style, ++ dotContainerStyle: PropTypes.oneOfType([PropTypes.object, PropTypes.array]), + dotElement: PropTypes.element, +- dotStyle: ViewPropTypes ? ViewPropTypes.style : View.propTypes.style, ++ dotStyle: PropTypes.oneOfType([PropTypes.object, PropTypes.array]), + inactiveDotColor: PropTypes.string, + inactiveDotElement: PropTypes.element, + inactiveDotOpacity: PropTypes.number, + inactiveDotScale: PropTypes.number, +- inactiveDotStyle: ViewPropTypes ? ViewPropTypes.style : View.propTypes.style, ++ inactiveDotStyle: PropTypes.oneOfType([PropTypes.object, PropTypes.array]), + renderDots: PropTypes.func, + tappableDots: PropTypes.bool, + vertical: PropTypes.bool, +diff --git a/node_modules/react-native-snap-carousel/src/pagination/PaginationDot.js b/node_modules/react-native-snap-carousel/src/pagination/PaginationDot.js +index e59d196..3770c03 100644 +--- a/node_modules/react-native-snap-carousel/src/pagination/PaginationDot.js ++++ b/node_modules/react-native-snap-carousel/src/pagination/PaginationDot.js +@@ -1,5 +1,5 @@ + import React, { PureComponent } from 'react'; +-import { View, Animated, Easing, TouchableOpacity, ViewPropTypes } from 'react-native'; ++import { View, Animated, Easing, TouchableOpacity } from 'react-native'; + import PropTypes from 'prop-types'; + import styles from './Pagination.style'; + +@@ -12,11 +12,11 @@ export default class PaginationDot extends PureComponent { + activeOpacity: PropTypes.number, + carouselRef: PropTypes.object, + color: PropTypes.string, +- containerStyle: ViewPropTypes ? ViewPropTypes.style : View.propTypes.style, ++ containerStyle: PropTypes.oneOfType([PropTypes.object, PropTypes.array]), + inactiveColor: PropTypes.string, +- inactiveStyle: ViewPropTypes ? ViewPropTypes.style : View.propTypes.style, ++ inactiveStyle: PropTypes.oneOfType([PropTypes.object, PropTypes.array]), + index: PropTypes.number, +- style: ViewPropTypes ? ViewPropTypes.style : View.propTypes.style, ++ style: PropTypes.oneOfType([PropTypes.object, PropTypes.array]), + tappable: PropTypes.bool + }; + +diff --git a/node_modules/react-native-snap-carousel/src/parallaximage/ParallaxImage.js b/node_modules/react-native-snap-carousel/src/parallaximage/ParallaxImage.js +index 8bc774a..3be5f83 100644 +--- a/node_modules/react-native-snap-carousel/src/parallaximage/ParallaxImage.js ++++ b/node_modules/react-native-snap-carousel/src/parallaximage/ParallaxImage.js +@@ -1,7 +1,7 @@ + // Parallax effect inspired by https://github.com/oblador/react-native-parallax/ + + import React, { Component } from 'react'; +-import { View, ViewPropTypes, Image, Animated, Easing, ActivityIndicator, findNodeHandle } from 'react-native'; ++import { View, Image, Animated, Easing, ActivityIndicator, findNodeHandle } from 'react-native'; + import PropTypes from 'prop-types'; + import styles from './ParallaxImage.style'; + +@@ -16,7 +16,7 @@ export default class ParallaxImage extends Component { + sliderHeight: PropTypes.number, // passed from + sliderWidth: PropTypes.number, // passed from + vertical: PropTypes.bool, // passed from +- containerStyle: ViewPropTypes ? ViewPropTypes.style : View.propTypes.style, ++ containerStyle: PropTypes.oneOfType([PropTypes.object, PropTypes.array]), + dimensions: PropTypes.shape({ + width: PropTypes.number, + height: PropTypes.number