Repository: kiwicom/mobile
Pull request #1201 (2018-10-09 13:00:34)

Hotels: Fix status bar on gallery
Gallery and payments as screens instead of new modal


Patch:
diff --git a/android/app/build.gradle b/android/app/build.gradle
index c9d59f7e..a8faa52b 100644
--- a/android/app/build.gradle
+++ b/android/app/build.gradle
@@ -165,7 +165,7 @@ dependencies {
     implementation project(':react-native-native-modules')
     implementation fileTree(dir: "libs", include: ["*.jar"])
     implementation "com.android.support:appcompat-v7:$supportVersion"
-    implementation ("com.facebook.react:react-native:$reactNativeVersion") { force = true }
+    implementation "com.facebook.react:react-native:+"
     implementation "com.android.support:multidex:1.0.2"
     implementation "com.trinerdis.skypicker:logging:0.2.1-SNAPSHOT"
     implementation("com.google.android.gms:play-services-base:$playServicesVersion")
diff --git a/android/dependencies.gradle b/android/dependencies.gradle
index 20cb86d4..6a90f3f0 100644
--- a/android/dependencies.gradle
+++ b/android/dependencies.gradle
@@ -1,11 +1,4 @@
-import groovy.json.JsonSlurper
-
-def inputFile = new File("${rootDir}/../.build/package.json")
-def packageJson = new JsonSlurper().parseText(inputFile.text)
-
-def rnModulesFile = new File("${rootDir}/../packages/rnmodules/package.json")
-def rnModulesPackageJson = new JsonSlurper().parseText(rnModulesFile.text)
-
+// Global to all projects and subprojects
 ext {
     gradlePluginVersion = "3.2.0"
 
@@ -21,19 +14,8 @@ ext {
     testRunnerVersion = "1.0.1"
     espressoVersion = "3.0.1"
 
-    reactNativeVersion = packageJson['dependencies']['react-native'].replace('^', '')
-
-    reactNativeVectorIcons = packageJson['dependencies']['react-native-vector-icons'].replace('^', '') + ".react-native." + reactNativeVersion
-    reactNativeMaps = packageJson['dependencies']['react-native-maps'].replace('^', '') + ".react-native." + reactNativeVersion
-    reactNativeTooltips = packageJson['dependencies']['react-native-tooltips'].replace('^', '') + ".react-native." + reactNativeVersion
-    reactNativeZipArchive = packageJson['dependencies']['react-native-zip-archive'].replace('^', '') + ".react-native." + reactNativeVersion
-
-    reactNativeNativeModules = rnModulesPackageJson['version'] + ".react-native." + reactNativeVersion
-
     loggingVersion = "0.2.2"
     infinarioVersion = "0.2"
 
     playServicesVersion = "11.8.0"
-
-    rnKiwiMobileVersion = packageJson['version']
 }
\ No newline at end of file
diff --git a/android/native/react-native-maps/build.gradle b/android/native/react-native-maps/build.gradle
index cab71b2a..fb851418 100644
--- a/android/native/react-native-maps/build.gradle
+++ b/android/native/react-native-maps/build.gradle
@@ -1,5 +1,6 @@
 buildscript {
-    apply from: "../dependencies.gradle"
+    apply from: "../versions.gradle"
+    apply from: "../../dependencies.gradle"
 
     repositories {
         google()
diff --git a/android/native/react-native-maps/settings.gradle b/android/native/react-native-maps/settings.gradle
index 1012e39d..d3b2b34f 100644
--- a/android/native/react-native-maps/settings.gradle
+++ b/android/native/react-native-maps/settings.gradle
@@ -1,4 +1,4 @@
 include ':react-native-maps'
 project(':react-native-maps').projectDir = new File(
-        rootProject.projectDir, '../../node_modules/react-native-maps/lib/android'
+        rootProject.projectDir, '../../../node_modules/react-native-maps/lib/android'
 )
diff --git a/android/native/react-native-native-modules/build.gradle b/android/native/react-native-native-modules/build.gradle
index 040022d8..dfab11ce 100644
--- a/android/native/react-native-native-modules/build.gradle
+++ b/android/native/react-native-native-modules/build.gradle
@@ -1,3 +1,8 @@
+import groovy.json.JsonSlurper
+
+def inputFile = new File("${rootDir}/../.build/package.json")
+def packageJson = new JsonSlurper().parseText(inputFile.text)
+
 apply plugin: 'com.android.library'
 apply plugin: 'kotlin-android'
 apply plugin: 'maven'
@@ -15,6 +20,7 @@ android {
         testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
     }
 
+    project.ext.reactNativeVersion = packageJson['dependencies']['react-native'].replace('^', '')
 
     compileOptions {
         sourceCompatibility 1.8
diff --git a/android/native/react-native-tooltips/build.gradle b/android/native/react-native-tooltips/build.gradle
index 4393149c..711a59e5 100644
--- a/android/native/react-native-tooltips/build.gradle
+++ b/android/native/react-native-tooltips/build.gradle
@@ -1,5 +1,6 @@
 buildscript {
-    apply from: "../dependencies.gradle"
+    apply from: "../versions.gradle"
+    apply from: "../../dependencies.gradle"
 
     repositories {
         google()
@@ -31,6 +32,15 @@ subprojects {
         }
     }
 
+    android {
+        compileSdkVersion 28
+
+        defaultConfig {
+            minSdkVersion 15
+            targetSdkVersion 28
+        }
+    }
+
     dependencies {
         implementation "com.facebook.react:react-native:$reactNativeVersion"
     }
diff --git a/android/native/react-native-tooltips/settings.gradle b/android/native/react-native-tooltips/settings.gradle
index a649305e..419da079 100644
--- a/android/native/react-native-tooltips/settings.gradle
+++ b/android/native/react-native-tooltips/settings.gradle
@@ -1,4 +1,4 @@
 include ':react-native-tooltips'
 project(':react-native-tooltips').projectDir = new File(
-        rootProject.projectDir, '../../node_modules/react-native-tooltips/android'
+        rootProject.projectDir, '../../../node_modules/react-native-tooltips/android'
 )
diff --git a/android/native/react-native-vector-icons/build.gradle b/android/native/react-native-vector-icons/build.gradle
index e553bcd4..679785d3 100644
--- a/android/native/react-native-vector-icons/build.gradle
+++ b/android/native/react-native-vector-icons/build.gradle
@@ -1,5 +1,5 @@
 buildscript {
-    apply from: "../dependencies.gradle"
+    apply from: "../../dependencies.gradle"
 
     repositories {
         google()
diff --git a/android/native/react-native-vector-icons/settings.gradle b/android/native/react-native-vector-icons/settings.gradle
index 7f260acd..dde12bc2 100644
--- a/android/native/react-native-vector-icons/settings.gradle
+++ b/android/native/react-native-vector-icons/settings.gradle
@@ -1,4 +1,4 @@
 include ':react-native-vector-icons'
 project(':react-native-vector-icons').projectDir = new File(
-        rootProject.projectDir, '../../node_modules/react-native-vector-icons/android'
+        rootProject.projectDir, '../../../node_modules/react-native-vector-icons/android'
 )
diff --git a/android/native/react-native-zip-archive/build.gradle b/android/native/react-native-zip-archive/build.gradle
index 1d9c70d7..217424cb 100644
--- a/android/native/react-native-zip-archive/build.gradle
+++ b/android/native/react-native-zip-archive/build.gradle
@@ -1,5 +1,6 @@
 buildscript {
-    apply from: "../dependencies.gradle"
+    apply from: "../versions.gradle"
+    apply from: "../../dependencies.gradle"
 
     repositories {
         google()
diff --git a/android/native/react-native-zip-archive/settings.gradle b/android/native/react-native-zip-archive/settings.gradle
index 261cad7b..6adb7b7e 100644
--- a/android/native/react-native-zip-archive/settings.gradle
+++ b/android/native/react-native-zip-archive/settings.gradle
@@ -1,2 +1,2 @@
 include ':react-native-zip-archive'
-project(':react-native-zip-archive').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-zip-archive/android')
+project(':react-native-zip-archive').projectDir = new File(rootProject.projectDir, '../../../node_modules/react-native-zip-archive/android')
diff --git a/android/native/react-native/build.gradle b/android/native/react-native/build.gradle
index 58f2f4d6..32c7fc9b 100644
--- a/android/native/react-native/build.gradle
+++ b/android/native/react-native/build.gradle
@@ -1,5 +1,5 @@
 buildscript {
-    apply from: "../dependencies.gradle"
+    apply from: "../../dependencies.gradle"
 
     repositories {
         google()
diff --git a/android/native/react-native/settings.gradle b/android/native/react-native/settings.gradle
index e48aa310..a8152f3b 100644
--- a/android/native/react-native/settings.gradle
+++ b/android/native/react-native/settings.gradle
@@ -1,4 +1,4 @@
 include ':react-native'
 project(':react-native').projectDir = new File(
-        rootProject.projectDir, '../../node_modules/react-native/ReactAndroid'
+        rootProject.projectDir, '../../../node_modules/react-native/ReactAndroid'
 )
diff --git a/android/native/versions.gradle b/android/native/versions.gradle
new file mode 100644
index 00000000..f30594e7
--- /dev/null
+++ b/android/native/versions.gradle
@@ -0,0 +1,8 @@
+import groovy.json.JsonSlurper
+
+def inputFile = new File("${rootDir}/../../../.build/package.json")
+def packageJson = new JsonSlurper().parseText(inputFile.text)
+
+ext {
+    reactNativeVersion = packageJson['dependencies']['react-native'].replace('^', '')
+}
\ No newline at end of file
diff --git a/android/playground/build.gradle b/android/playground/build.gradle
index b0c33859..b1c7f6fb 100644
--- a/android/playground/build.gradle
+++ b/android/playground/build.gradle
@@ -1,8 +1,13 @@
+import groovy.json.JsonSlurper
+
 apply plugin: 'com.android.application'
 apply plugin: 'kotlin-android'
 apply plugin: 'kotlin-android-extensions'
 apply from: "../dependencies.gradle"
 
+def inputFile = new File("${rootDir}/../.build/package.json")
+def packageJson = new JsonSlurper().parseText(inputFile.text)
+
 android {
     compileSdkVersion 27
     defaultConfig {
@@ -18,6 +23,9 @@ android {
             abiFilters "armeabi-v7a", "x86"
         }
     }
+
+    project.ext.rnKiwiMobileVersion = packageJson['version']
+
     signingConfigs {
         release {
             // Just a fake keystore / fake password
diff --git a/android/rnkiwimobile/build.gradle b/android/rnkiwimobile/build.gradle
index c869e01f..c71f8844 100644
--- a/android/rnkiwimobile/build.gradle
+++ b/android/rnkiwimobile/build.gradle
@@ -1,6 +1,7 @@
 apply plugin: 'com.android.library'
 apply plugin: 'kotlin-android'
 apply plugin: 'maven'
+apply from: "./versions.gradle"
 apply from: "../dependencies.gradle"
 
 android {
diff --git a/android/rnkiwimobile/versions.gradle b/android/rnkiwimobile/versions.gradle
new file mode 100644
index 00000000..5c69c225
--- /dev/null
+++ b/android/rnkiwimobile/versions.gradle
@@ -0,0 +1,18 @@
+import groovy.json.JsonSlurper
+
+def inputFile = new File("${rootDir}/../.build/package.json")
+def packageJson = new JsonSlurper().parseText(inputFile.text)
+
+def rnModulesFile = new File("${rootDir}/../packages/rnmodules/package.json")
+def rnModulesPackageJson = new JsonSlurper().parseText(rnModulesFile.text)
+
+ext {
+    reactNativeVersion = packageJson['dependencies']['react-native'].replace('^', '')
+
+    reactNativeVectorIcons = packageJson['dependencies']['react-native-vector-icons'].replace('^', '') + ".react-native." + reactNativeVersion
+    reactNativeMaps = packageJson['dependencies']['react-native-maps'].replace('^', '') + ".react-native." + reactNativeVersion
+    reactNativeTooltips = packageJson['dependencies']['react-native-tooltips'].replace('^', '') + ".react-native." + reactNativeVersion
+    reactNativeZipArchive = packageJson['dependencies']['react-native-zip-archive'].replace('^', '') + ".react-native." + reactNativeVersion
+
+    reactNativeNativeModules = rnModulesPackageJson['version'] + ".react-native." + reactNativeVersion
+}
\ No newline at end of file
diff --git a/app/hotels/src/gallery/GalleryGrid.js b/app/hotels/src/gallery/GalleryGrid.js
index 13cd1cb9..b3e1b6c6 100644
--- a/app/hotels/src/gallery/GalleryGrid.js
+++ b/app/hotels/src/gallery/GalleryGrid.js
@@ -1,7 +1,7 @@
 // @flow
 
 import * as React from 'react';
-import { FlatList } from 'react-native';
+import { FlatList, StatusBar } from 'react-native';
 import {
   GeneralError,
   Modal,
@@ -125,6 +125,7 @@ export default class GalleryGrid extends React.Component<Props, State> {
     if (this.props.images) {
       return (
         <React.Fragment>
+          <StatusBar barStyle="dark-content" />
           <FlatList
             data={this.props.images}
             extraData={this.state}
diff --git a/app/hotels/src/navigation/HotelsNavigationStack.js b/app/hotels/src/navigation/HotelsNavigationStack.js
index f038323e..5d4d6658 100644
--- a/app/hotels/src/navigation/HotelsNavigationStack.js
+++ b/app/hotels/src/navigation/HotelsNavigationStack.js
@@ -1,16 +1,13 @@
 // @flow strict
 
-import * as React from 'react';
 import {
   StackNavigator,
   StackNavigatorOptions,
   type NavigationType,
-  HeaderTitle,
   createTransparentHeaderStyle,
 } from '@kiwicom/mobile-navigation';
 import { Dimensions as RNDimensions } from 'react-native';
 import { withMappedNavigationAndConfigProps as withMappedProps } from 'react-navigation-props-mapper';
-import { Translation } from '@kiwicom/mobile-localization';
 
 import SingleHotel from './singleHotel/SingleHotelNavigationScreen';
 import SearchResults from './allHotels/SearchResultsScreen';
@@ -26,11 +23,8 @@ export type NavigationProps = {|
   currency: string,
 |};
 
-export default StackNavigator(
+const DetailStack = StackNavigator(
   {
-    SearchResults: {
-      screen: withMappedProps(SearchResults),
-    },
     SingleHotel: {
       screen: withMappedProps(SingleHotel),
       navigationOptions: {
@@ -41,6 +35,27 @@ export default StackNavigator(
     GalleryGrid: {
       screen: withMappedProps(GalleryGrid, AdditionalPropsInjector),
     },
+    Payment: {
+      screen: withMappedProps(Payment),
+    },
+  },
+  {
+    ...StackNavigatorOptions,
+    initialRouteName: 'SingleHotel',
+  },
+);
+
+export default StackNavigator(
+  {
+    SearchResults: {
+      screen: withMappedProps(SearchResults),
+    },
+    DetailStack: {
+      screen: DetailStack,
+      navigationOptions: {
+        header: null,
+      },
+    },
     SingleHotelMap: {
       screen: SingleHotelMapNavigationScreen,
       navigationOptions: {
@@ -48,17 +63,6 @@ export default StackNavigator(
         ...createTransparentHeaderStyle(RNDimensions.get('screen')),
       },
     },
-    Payment: {
-      screen: withMappedProps(Payment),
-      navigationOptions: {
-        mode: 'modal',
-        headerTitle: (
-          <HeaderTitle>
-            <Translation id="hotels.navigation.title.payment" />
-          </HeaderTitle>
-        ),
-      },
-    },
   },
   {
     ...StackNavigatorOptions,
diff --git a/app/hotels/src/navigation/singleHotel/SingleHotelNavigationScreen.js b/app/hotels/src/navigation/singleHotel/SingleHotelNavigationScreen.js
index 9496d200..9f0d0f15 100644
--- a/app/hotels/src/navigation/singleHotel/SingleHotelNavigationScreen.js
+++ b/app/hotels/src/navigation/singleHotel/SingleHotelNavigationScreen.js
@@ -21,6 +21,10 @@ class SingleHotelNavigationScreen extends React.Component<Props> {
     isStandAlonePackage: false,
   };
 
+  static navigationOptions = {
+    header: null,
+  };
+
   componentDidMount = () => {
     this.props.navigation.setParams({
       goBack: this.goBack,
diff --git a/app/hotels/src/navigation/singleHotel/SingleHotelStack.js b/app/hotels/src/navigation/singleHotel/SingleHotelStack.js
index fb138105..ae833954 100644
--- a/app/hotels/src/navigation/singleHotel/SingleHotelStack.js
+++ b/app/hotels/src/navigation/singleHotel/SingleHotelStack.js
@@ -1,15 +1,12 @@
 // @flow
 
-import * as React from 'react';
 import { Dimensions as RNDimensions } from 'react-native';
 import { withMappedNavigationAndConfigProps as withMappedProps } from 'react-navigation-props-mapper';
 import {
-  HeaderTitle,
   StackNavigator,
   StackNavigatorOptions,
   createTransparentHeaderStyle,
 } from '@kiwicom/mobile-navigation';
-import { Translation } from '@kiwicom/mobile-localization';
 
 import SingleHotelNavigationScreen from './SingleHotelNavigationScreen';
 import SingleHotelMapNavigationScreen from './SingleHotelMapNavigationScreen';
@@ -17,10 +14,32 @@ import GalleryGrid from '../../gallery/GalleryGrid';
 import { PaymentScreen } from '../../singleHotel/PaymentScreen';
 import AdditionalPropsInjector from './AdditionalPropsInjector';
 
-export default StackNavigator(
+const DetailStack = StackNavigator(
   {
     SingleHotel: {
-      screen: SingleHotelNavigationScreen,
+      screen: withMappedProps(SingleHotelNavigationScreen),
+      navigationOptions: {
+        headerLeft: null,
+        ...createTransparentHeaderStyle(RNDimensions.get('screen')),
+      },
+    },
+    GalleryGrid: {
+      screen: withMappedProps(GalleryGrid, AdditionalPropsInjector),
+    },
+    Payment: {
+      screen: withMappedProps(PaymentScreen),
+    },
+  },
+  {
+    ...StackNavigatorOptions,
+    initialRouteName: 'SingleHotel',
+  },
+);
+
+export default StackNavigator(
+  {
+    DetailStack: {
+      screen: DetailStack,
       navigationOptions: {
         headerLeft: null,
         /**
@@ -41,23 +60,10 @@ export default StackNavigator(
         ...createTransparentHeaderStyle(RNDimensions.get('screen')),
       },
     },
-    GalleryGrid: {
-      screen: withMappedProps(GalleryGrid, AdditionalPropsInjector),
-    },
-    Payment: {
-      screen: withMappedProps(PaymentScreen),
-      navigationOptions: {
-        headerTitle: (
-          <HeaderTitle>
-            <Translation id="hotels.navigation.title.payment" />
-          </HeaderTitle>
-        ),
-      },
-    },
   },
   {
     ...StackNavigatorOptions,
-    initialRouteName: 'SingleHotel',
+    initialRouteName: 'DetailStack',
     mode: 'modal',
   },
 );
diff --git a/app/hotels/src/singleHotel/PaymentScreen.js b/app/hotels/src/singleHotel/PaymentScreen.js
index 30c94447..4879eee9 100644
--- a/app/hotels/src/singleHotel/PaymentScreen.js
+++ b/app/hotels/src/singleHotel/PaymentScreen.js
@@ -1,14 +1,15 @@
 // @flow
 
 import * as React from 'react';
-import { Platform } from 'react-native';
+import { Platform, StatusBar } from 'react-native';
 import {
   WebView,
   Logger,
   type WebViewStateChangeEvent,
 } from '@kiwicom/mobile-shared';
-import { DateUtils } from '@kiwicom/mobile-localization';
+import { DateUtils, Translation } from '@kiwicom/mobile-localization';
 import querystring from 'querystring';
+import { HeaderTitle } from '@kiwicom/mobile-navigation';
 
 import { sanitizeDate } from '../GraphQLSanitizers';
 import { withHotelsContext } from '../HotelsContext';
@@ -28,6 +29,13 @@ export type PaymentParameters = {|
 |};
 
 export class PaymentScreen extends React.Component<PaymentParameters> {
+  static navigationOptions = () => ({
+    headerTitle: (
+      <HeaderTitle>
+        <Translation id="hotels.navigation.title.payment" />
+      </HeaderTitle>
+    ),
+  });
   componentDidMount = () => {
     Logger.ancillaryDisplayed(Logger.Type.ANCILLARY_STEP_PAYMENT);
   };
@@ -39,12 +47,15 @@ export class PaymentScreen extends React.Component<PaymentParameters> {
   };
 
   render = () => (
-    <WebView
-      source={{
-        uri: createURI(this.props),
-      }}
-      onNavigationStateChange={this.onNavigationStateChange}
-    />
+    <React.Fragment>
+      <StatusBar barStyle="dark-content" />
+      <WebView
+        source={{
+          uri: createURI(this.props),
+        }}
+        onNavigationStateChange={this.onNavigationStateChange}
+      />
+    </React.Fragment>
   );
 }
 
diff --git a/docs/android/external-native-dependencies.md b/docs/android/external-native-dependencies.md
index 80696ff6..96ffc0ec 100644
--- a/docs/android/external-native-dependencies.md
+++ b/docs/android/external-native-dependencies.md
@@ -2,7 +2,7 @@
 
 When we update a dependency there are no major changes as versions will be taken from [.build/package.json](../../.build/package.json) and a new [snapshot](http://trinerdis.cz:8000/repository/snapshots/com/trinerdis/skypicker/) will be deployed.
 
-To add a new native dependency though, that is more time consuming. We need to create a separated `SNAPSHOT` for it and upload it to [Trinerdis](http://trinerdis.cz:8000/repository/snapshots/). We need to create a similar structure for a new dependency like in [/android/native/react-native-tooltips](../../android/native/react-native-tooltips).
+To add a new native dependency though, that is more time consuming. We need to create a separated `SNAPSHOT` for it and upload it to [Trinerdis](http://trinerdis.cz:8000/repository/snapshots/). We need to create a similar structure for a new dependency like in [android/native/react-native-tooltips](../../android/native/react-native-tooltips).
 
 Usually we only need to change the following part to use the correct dependency name:
 
@@ -22,13 +22,13 @@ tasks.create('uploadTrinerdis', Upload.class) {
 }
 ```
 
-We also need to instruct [dependencies.gradle](../../android/dependencies.gradle) to take the correct version:
+We also need to instruct [rnkiwimobile/versions.gradle](../../android/rnkiwimobile/versions.gradle) to take the correct version:
 
 ```
 ourNativeDependency = packageJson['dependencies']['our-native-dependency'].replace('^', '')
 ```
 
-Then, we add this dependency as part of `rnkiwimobile` like [/android/rnkiwimobile/build.gradle](../../android/rnkiwimobile/build.gradle#L48-L50):
+Then, we add this dependency as part of `rnkiwimobile` like [android/rnkiwimobile/build.gradle](../../android/rnkiwimobile/build.gradle#L48-L50):
 
 ```gradle
 api "com.trinerdis.skypicker:react-native-maps:$reactNativeMaps-SNAPSHOT"
diff --git a/packages/navigation/index.js b/packages/navigation/index.js
index 8ffebdcb..bcbe895e 100644
--- a/packages/navigation/index.js
+++ b/packages/navigation/index.js
@@ -64,6 +64,7 @@ export const StackNavigator = (
         +mode?: 'modal',
         +headerTransparent?: boolean,
         +headerLeft?: Object | null,
+        +header?: Object | null,
       |},
     |},
   },
diff --git a/scripts/buildAndroidSnapshots.js b/scripts/buildAndroidSnapshots.js
index 697721f9..09dd87af 100755
--- a/scripts/buildAndroidSnapshots.js
+++ b/scripts/buildAndroidSnapshots.js
@@ -51,7 +51,7 @@ const deployDependency = (packageName, url, version, extension = '') => {
             `cd ${baseFolder}/native/${packageName} && ANDROID_DEPLOYMENT_PASSWORD=${
               // $FlowFixMe we already checked in the top that is defined
               process.env.ANDROID_DEPLOYMENT_PASSWORD
-            } ../gradlew --no-daemon uploadTrinerdis -Pversion=${version}`,
+            } ../../gradlew --no-daemon uploadTrinerdis -Pversion=${version}`,
           );
         } catch (err) {
           reject(err);
@@ -129,7 +129,9 @@ const deployLibrary = (packageName, version) => {
     deployDependency(
       'react-native-zip-archive',
       SKYPICKER_URL,
-      `${rnModulesVersion}.react-native.${reactNativeVersion}`,
+      `${getDependencyVersion(
+        'react-native-zip-archive',
+      )}.react-native.${reactNativeVersion}`,
       '-SNAPSHOT',
     ),
   ])


Test patch:
diff --git a/app/hotels/src/singleHotel/__tests__/__snapshots__/PaymentScreen.test.js.snap b/app/hotels/src/singleHotel/__tests__/__snapshots__/PaymentScreen.test.js.snap
index 23f001a9..61b4b316 100644
--- a/app/hotels/src/singleHotel/__tests__/__snapshots__/PaymentScreen.test.js.snap
+++ b/app/hotels/src/singleHotel/__tests__/__snapshots__/PaymentScreen.test.js.snap
@@ -5,12 +5,19 @@ exports[`creates correct URL 1`] = `"https://secure.booking.com/book.html?from_s
 exports[`creates correct URL 2`] = `"https://secure.booking.com/book.html?from_source=hotel&hostname=hotels.kiwi.com&hotel_id=2&stage=1&checkin=1970-01-03&interval=14&children_extrabeds=&nr_rooms_7709411_91461863_1_1_0=5&rt_pos_selected=&aid=321&label=kiwi-ios-react-rn-test&lang=cs&selected_currency=JPY"`;
 
 exports[`creates correct URL 3`] = `
-<WebView
-  onNavigationStateChange={[Function]}
-  source={
-    Object {
-      "uri": "https://secure.booking.com/book.html?from_source=hotel&hostname=hotels.kiwi.com&hotel_id=2&stage=1&checkin=1970-01-03&interval=14&children_extrabeds=&nr_rooms_7709411_91461863_1_1_0=5&rt_pos_selected=&aid=321&label=kiwi-ios-react-rn-test&lang=cs&selected_currency=JPY",
+<React.Fragment>
+  <StatusBar
+    animated={false}
+    barStyle="dark-content"
+    showHideTransition="fade"
+  />
+  <WebView
+    onNavigationStateChange={[Function]}
+    source={
+      Object {
+        "uri": "https://secure.booking.com/book.html?from_source=hotel&hostname=hotels.kiwi.com&hotel_id=2&stage=1&checkin=1970-01-03&interval=14&children_extrabeds=&nr_rooms_7709411_91461863_1_1_0=5&rt_pos_selected=&aid=321&label=kiwi-ios-react-rn-test&lang=cs&selected_currency=JPY",
+      }
     }
-  }
-/>
+  />
+</React.Fragment>
 `;