Repository: kiwicom/mobile
Pull request #1068 (2018-09-05 06:10:15)

MMB: Show stopover time and kiwi.com gurantee

tbergq: @RobinCsl 🚀 

Patch:
diff --git a/app/MMB/src/__generated__/MainMenuContainerQuery.graphql.js b/app/MMB/src/__generated__/MainMenuContainerQuery.graphql.js
index a52a6695..f1f66ac3 100644
--- a/app/MMB/src/__generated__/MainMenuContainerQuery.graphql.js
+++ b/app/MMB/src/__generated__/MainMenuContainerQuery.graphql.js
@@ -1,6 +1,6 @@
 /**
  * @flow
- * @relayHash 6f30100d9356386d0d94c309964bc149
+ * @relayHash ca7796d3046e8676275c83e1c6964904
  */
 
 /* eslint-disable */
@@ -225,6 +225,8 @@ fragment TripTitle on Trip {
 
 fragment TimelineTrip on Trip {
   legs {
+    ...TimelineLegWrapper
+    guarantee
     departure {
       ...TimelineDeparture_routeStop
     }
@@ -237,6 +239,10 @@ fragment TimelineTrip on Trip {
   }
 }
 
+fragment TimelineLegWrapper on Leg {
+  ...TripStopOver
+}
+
 fragment TimelineDeparture_routeStop on RouteStop {
   ...TimelineTitle
   ...TimelineTerminal
@@ -289,6 +295,10 @@ fragment TimelineTitle on RouteStop {
   }
 }
 
+fragment TripStopOver on Leg {
+  guarantee
+}
+
 fragment MulticityTitle on Trip {
   departure {
     ...MulticityName
@@ -527,6 +537,13 @@ v13 = {
   "plural": true,
   "selections": [
     v4,
+    {
+      "kind": "ScalarField",
+      "alias": null,
+      "name": "guarantee",
+      "args": null,
+      "storageKey": null
+    },
     {
       "kind": "LinkedField",
       "alias": null,
@@ -673,7 +690,7 @@ return {
   "operationKind": "query",
   "name": "MainMenuContainerQuery",
   "id": null,
-  "text": "query MainMenuContainerQuery(\n  $bookingId: Int!\n  $authToken: String!\n) {\n  singleBooking(id: $bookingId, authToken: $authToken) {\n    __typename\n    ...MainMenu\n    id\n  }\n}\n\nfragment MainMenu on BookingInterface {\n  databaseId\n  authToken\n  isPastBooking\n  ...Header\n  ...PassengerMenuGroup\n  ...MissingInformation\n  ...FlightServices\n}\n\nfragment Header on BookingInterface {\n  isPastBooking\n  ...StatusBar\n  ...TripInfo\n  ...TripOverview\n}\n\nfragment PassengerMenuGroup on BookingInterface {\n  ...PassengerMenuDetail\n}\n\nfragment MissingInformation on BookingInterface {\n  passengers {\n    travelDocument {\n      idNumber\n    }\n  }\n}\n\nfragment FlightServices on BookingInterface {\n  __typename\n  isPastBooking\n  ...FlightServicesOneWay\n  ...FlightServicesReturn\n  ...FlightServicesMulticity\n}\n\nfragment FlightServicesOneWay on BookingInterface {\n  ... on BookingOneWay {\n    trip {\n      ...FlightServicesMenuItem\n    }\n  }\n}\n\nfragment FlightServicesReturn on BookingInterface {\n  ... on BookingReturn {\n    inbound {\n      ...FlightServicesMenuItem\n    }\n    outbound {\n      ...FlightServicesMenuItem\n    }\n  }\n}\n\nfragment FlightServicesMulticity on BookingInterface {\n  ... on BookingMulticity {\n    trips {\n      ...FlightServicesMenuItem\n    }\n  }\n}\n\nfragment FlightServicesMenuItem on Trip {\n  legs {\n    type\n    id\n  }\n}\n\nfragment PassengerMenuDetail on BookingInterface {\n  ...Visa\n  passengers {\n    databaseId\n    ...Passenger\n  }\n}\n\nfragment Visa on BookingInterface {\n  passengers {\n    visaInformation {\n      requiredIn {\n        name\n        id\n      }\n      warningIn {\n        name\n        id\n      }\n    }\n  }\n}\n\nfragment Passenger on Passenger {\n  fullName\n  title\n  birthday\n}\n\nfragment StatusBar on BookingInterface {\n  ...StatusBarIcon\n  databaseId\n}\n\nfragment TripInfo on BookingInterface {\n  __typename\n  ... on BookingOneWay {\n    ...TripInfoOneWay\n  }\n  ... on BookingReturn {\n    ...TripInfoReturn\n  }\n  ... on BookingMulticity {\n    ...TripInfoMulticity\n  }\n}\n\nfragment TripOverview on BookingInterface {\n  __typename\n  ... on BookingOneWay {\n    ...OneWayTimeline\n  }\n  ... on BookingReturn {\n    ...ReturnTimeline\n  }\n  ... on BookingMulticity {\n    ...MulticityTimeline\n  }\n}\n\nfragment OneWayTimeline on BookingOneWay {\n  trip {\n    ...Timeline\n  }\n}\n\nfragment ReturnTimeline on BookingReturn {\n  outbound {\n    ...Timeline\n  }\n  inbound {\n    ...Timeline\n  }\n}\n\nfragment MulticityTimeline on BookingMulticity {\n  trips {\n    ...Timeline\n  }\n}\n\nfragment Timeline on Trip {\n  ...TripTitle\n  departure {\n    localTime\n    airport {\n      locationId\n      city {\n        name\n      }\n      id\n    }\n  }\n  arrival {\n    localTime\n    airport {\n      locationId\n      city {\n        name\n      }\n      id\n    }\n  }\n  legs {\n    id\n  }\n  ...TimelineTrip\n}\n\nfragment TripTitle on Trip {\n  ...MulticityTitle\n  duration\n}\n\nfragment TimelineTrip on Trip {\n  legs {\n    departure {\n      ...TimelineDeparture_routeStop\n    }\n    arrival {\n      ...TimelineArrival\n      ...TimelineDeparture_arrival\n    }\n    ...TimelineDeparture_legInfo\n    id\n  }\n}\n\nfragment TimelineDeparture_routeStop on RouteStop {\n  ...TimelineTitle\n  ...TimelineTerminal\n}\n\nfragment TimelineArrival on RouteStop {\n  ...TimelineTitle\n}\n\nfragment TimelineDeparture_arrival on RouteStop {\n  ...TimelineTerminal\n}\n\nfragment TimelineDeparture_legInfo on Leg {\n  flightNumber\n  operatingAirline {\n    name\n    iata\n  }\n  airline {\n    name\n    logoUrl\n    code\n  }\n  vehicle {\n    model\n    manufacturer\n  }\n}\n\nfragment TimelineTerminal on RouteStop {\n  terminal\n  airport {\n    code\n    city {\n      name\n    }\n    id\n  }\n}\n\nfragment TimelineTitle on RouteStop {\n  localTime\n  airport {\n    locationId\n    city {\n      name\n    }\n    id\n  }\n}\n\nfragment MulticityTitle on Trip {\n  departure {\n    ...MulticityName\n  }\n  arrival {\n    ...MulticityName\n  }\n}\n\nfragment MulticityName on RouteStop {\n  airport {\n    city {\n      name\n    }\n    id\n  }\n}\n\nfragment TripInfoOneWay on BookingOneWay {\n  trip {\n    ...TripCities\n    ...TripTimes\n  }\n}\n\nfragment TripInfoReturn on BookingReturn {\n  outbound {\n    ...TripCities\n    ...TripTimes\n  }\n  inbound {\n    ...TripTimes\n  }\n}\n\nfragment TripInfoMulticity on BookingMulticity {\n  trips {\n    ...TripCities\n    ...TripTimes\n  }\n}\n\nfragment TripCities on Trip {\n  departure {\n    ...Location\n  }\n  arrival {\n    ...Location\n  }\n}\n\nfragment TripTimes on Trip {\n  duration\n  departure {\n    ...DateTime\n  }\n  arrival {\n    ...DateTime\n  }\n}\n\nfragment DateTime on RouteStop {\n  localTime\n}\n\nfragment Location on RouteStop {\n  airport {\n    city {\n      name\n    }\n    ...CountryFlag\n    id\n  }\n}\n\nfragment CountryFlag on Location {\n  countryFlagURL\n}\n\nfragment StatusBarIcon on BookingInterface {\n  status\n  isPastBooking\n}\n",
+  "text": "query MainMenuContainerQuery(\n  $bookingId: Int!\n  $authToken: String!\n) {\n  singleBooking(id: $bookingId, authToken: $authToken) {\n    __typename\n    ...MainMenu\n    id\n  }\n}\n\nfragment MainMenu on BookingInterface {\n  databaseId\n  authToken\n  isPastBooking\n  ...Header\n  ...PassengerMenuGroup\n  ...MissingInformation\n  ...FlightServices\n}\n\nfragment Header on BookingInterface {\n  isPastBooking\n  ...StatusBar\n  ...TripInfo\n  ...TripOverview\n}\n\nfragment PassengerMenuGroup on BookingInterface {\n  ...PassengerMenuDetail\n}\n\nfragment MissingInformation on BookingInterface {\n  passengers {\n    travelDocument {\n      idNumber\n    }\n  }\n}\n\nfragment FlightServices on BookingInterface {\n  __typename\n  isPastBooking\n  ...FlightServicesOneWay\n  ...FlightServicesReturn\n  ...FlightServicesMulticity\n}\n\nfragment FlightServicesOneWay on BookingInterface {\n  ... on BookingOneWay {\n    trip {\n      ...FlightServicesMenuItem\n    }\n  }\n}\n\nfragment FlightServicesReturn on BookingInterface {\n  ... on BookingReturn {\n    inbound {\n      ...FlightServicesMenuItem\n    }\n    outbound {\n      ...FlightServicesMenuItem\n    }\n  }\n}\n\nfragment FlightServicesMulticity on BookingInterface {\n  ... on BookingMulticity {\n    trips {\n      ...FlightServicesMenuItem\n    }\n  }\n}\n\nfragment FlightServicesMenuItem on Trip {\n  legs {\n    type\n    id\n  }\n}\n\nfragment PassengerMenuDetail on BookingInterface {\n  ...Visa\n  passengers {\n    databaseId\n    ...Passenger\n  }\n}\n\nfragment Visa on BookingInterface {\n  passengers {\n    visaInformation {\n      requiredIn {\n        name\n        id\n      }\n      warningIn {\n        name\n        id\n      }\n    }\n  }\n}\n\nfragment Passenger on Passenger {\n  fullName\n  title\n  birthday\n}\n\nfragment StatusBar on BookingInterface {\n  ...StatusBarIcon\n  databaseId\n}\n\nfragment TripInfo on BookingInterface {\n  __typename\n  ... on BookingOneWay {\n    ...TripInfoOneWay\n  }\n  ... on BookingReturn {\n    ...TripInfoReturn\n  }\n  ... on BookingMulticity {\n    ...TripInfoMulticity\n  }\n}\n\nfragment TripOverview on BookingInterface {\n  __typename\n  ... on BookingOneWay {\n    ...OneWayTimeline\n  }\n  ... on BookingReturn {\n    ...ReturnTimeline\n  }\n  ... on BookingMulticity {\n    ...MulticityTimeline\n  }\n}\n\nfragment OneWayTimeline on BookingOneWay {\n  trip {\n    ...Timeline\n  }\n}\n\nfragment ReturnTimeline on BookingReturn {\n  outbound {\n    ...Timeline\n  }\n  inbound {\n    ...Timeline\n  }\n}\n\nfragment MulticityTimeline on BookingMulticity {\n  trips {\n    ...Timeline\n  }\n}\n\nfragment Timeline on Trip {\n  ...TripTitle\n  departure {\n    localTime\n    airport {\n      locationId\n      city {\n        name\n      }\n      id\n    }\n  }\n  arrival {\n    localTime\n    airport {\n      locationId\n      city {\n        name\n      }\n      id\n    }\n  }\n  legs {\n    id\n  }\n  ...TimelineTrip\n}\n\nfragment TripTitle on Trip {\n  ...MulticityTitle\n  duration\n}\n\nfragment TimelineTrip on Trip {\n  legs {\n    ...TimelineLegWrapper\n    guarantee\n    departure {\n      ...TimelineDeparture_routeStop\n    }\n    arrival {\n      ...TimelineArrival\n      ...TimelineDeparture_arrival\n    }\n    ...TimelineDeparture_legInfo\n    id\n  }\n}\n\nfragment TimelineLegWrapper on Leg {\n  ...TripStopOver\n}\n\nfragment TimelineDeparture_routeStop on RouteStop {\n  ...TimelineTitle\n  ...TimelineTerminal\n}\n\nfragment TimelineArrival on RouteStop {\n  ...TimelineTitle\n}\n\nfragment TimelineDeparture_arrival on RouteStop {\n  ...TimelineTerminal\n}\n\nfragment TimelineDeparture_legInfo on Leg {\n  flightNumber\n  operatingAirline {\n    name\n    iata\n  }\n  airline {\n    name\n    logoUrl\n    code\n  }\n  vehicle {\n    model\n    manufacturer\n  }\n}\n\nfragment TimelineTerminal on RouteStop {\n  terminal\n  airport {\n    code\n    city {\n      name\n    }\n    id\n  }\n}\n\nfragment TimelineTitle on RouteStop {\n  localTime\n  airport {\n    locationId\n    city {\n      name\n    }\n    id\n  }\n}\n\nfragment TripStopOver on Leg {\n  guarantee\n}\n\nfragment MulticityTitle on Trip {\n  departure {\n    ...MulticityName\n  }\n  arrival {\n    ...MulticityName\n  }\n}\n\nfragment MulticityName on RouteStop {\n  airport {\n    city {\n      name\n    }\n    id\n  }\n}\n\nfragment TripInfoOneWay on BookingOneWay {\n  trip {\n    ...TripCities\n    ...TripTimes\n  }\n}\n\nfragment TripInfoReturn on BookingReturn {\n  outbound {\n    ...TripCities\n    ...TripTimes\n  }\n  inbound {\n    ...TripTimes\n  }\n}\n\nfragment TripInfoMulticity on BookingMulticity {\n  trips {\n    ...TripCities\n    ...TripTimes\n  }\n}\n\nfragment TripCities on Trip {\n  departure {\n    ...Location\n  }\n  arrival {\n    ...Location\n  }\n}\n\nfragment TripTimes on Trip {\n  duration\n  departure {\n    ...DateTime\n  }\n  arrival {\n    ...DateTime\n  }\n}\n\nfragment DateTime on RouteStop {\n  localTime\n}\n\nfragment Location on RouteStop {\n  airport {\n    city {\n      name\n    }\n    ...CountryFlag\n    id\n  }\n}\n\nfragment CountryFlag on Location {\n  countryFlagURL\n}\n\nfragment StatusBarIcon on BookingInterface {\n  status\n  isPastBooking\n}\n",
   "metadata": {},
   "fragment": {
     "kind": "Fragment",
diff --git a/app/MMB/src/__generated__/MainMenuRefetchQuery.graphql.js b/app/MMB/src/__generated__/MainMenuRefetchQuery.graphql.js
index 954dfac0..0850859f 100644
--- a/app/MMB/src/__generated__/MainMenuRefetchQuery.graphql.js
+++ b/app/MMB/src/__generated__/MainMenuRefetchQuery.graphql.js
@@ -1,6 +1,6 @@
 /**
  * @flow
- * @relayHash 920cdcbab4b5cab4a4e01bd8ea9c4a76
+ * @relayHash 9717c9d8108b588713edd3c04d9073a8
  */
 
 /* eslint-disable */
@@ -225,6 +225,8 @@ fragment TripTitle on Trip {
 
 fragment TimelineTrip on Trip {
   legs {
+    ...TimelineLegWrapper
+    guarantee
     departure {
       ...TimelineDeparture_routeStop
     }
@@ -237,6 +239,10 @@ fragment TimelineTrip on Trip {
   }
 }
 
+fragment TimelineLegWrapper on Leg {
+  ...TripStopOver
+}
+
 fragment TimelineDeparture_routeStop on RouteStop {
   ...TimelineTitle
   ...TimelineTerminal
@@ -289,6 +295,10 @@ fragment TimelineTitle on RouteStop {
   }
 }
 
+fragment TripStopOver on Leg {
+  guarantee
+}
+
 fragment MulticityTitle on Trip {
   departure {
     ...MulticityName
@@ -527,6 +537,13 @@ v13 = {
   "plural": true,
   "selections": [
     v4,
+    {
+      "kind": "ScalarField",
+      "alias": null,
+      "name": "guarantee",
+      "args": null,
+      "storageKey": null
+    },
     {
       "kind": "LinkedField",
       "alias": null,
@@ -673,7 +690,7 @@ return {
   "operationKind": "query",
   "name": "MainMenuRefetchQuery",
   "id": null,
-  "text": "query MainMenuRefetchQuery(\n  $id: Int!\n  $authToken: String!\n) {\n  singleBooking(id: $id, authToken: $authToken) {\n    __typename\n    ...MainMenu\n    id\n  }\n}\n\nfragment MainMenu on BookingInterface {\n  databaseId\n  authToken\n  isPastBooking\n  ...Header\n  ...PassengerMenuGroup\n  ...MissingInformation\n  ...FlightServices\n}\n\nfragment Header on BookingInterface {\n  isPastBooking\n  ...StatusBar\n  ...TripInfo\n  ...TripOverview\n}\n\nfragment PassengerMenuGroup on BookingInterface {\n  ...PassengerMenuDetail\n}\n\nfragment MissingInformation on BookingInterface {\n  passengers {\n    travelDocument {\n      idNumber\n    }\n  }\n}\n\nfragment FlightServices on BookingInterface {\n  __typename\n  isPastBooking\n  ...FlightServicesOneWay\n  ...FlightServicesReturn\n  ...FlightServicesMulticity\n}\n\nfragment FlightServicesOneWay on BookingInterface {\n  ... on BookingOneWay {\n    trip {\n      ...FlightServicesMenuItem\n    }\n  }\n}\n\nfragment FlightServicesReturn on BookingInterface {\n  ... on BookingReturn {\n    inbound {\n      ...FlightServicesMenuItem\n    }\n    outbound {\n      ...FlightServicesMenuItem\n    }\n  }\n}\n\nfragment FlightServicesMulticity on BookingInterface {\n  ... on BookingMulticity {\n    trips {\n      ...FlightServicesMenuItem\n    }\n  }\n}\n\nfragment FlightServicesMenuItem on Trip {\n  legs {\n    type\n    id\n  }\n}\n\nfragment PassengerMenuDetail on BookingInterface {\n  ...Visa\n  passengers {\n    databaseId\n    ...Passenger\n  }\n}\n\nfragment Visa on BookingInterface {\n  passengers {\n    visaInformation {\n      requiredIn {\n        name\n        id\n      }\n      warningIn {\n        name\n        id\n      }\n    }\n  }\n}\n\nfragment Passenger on Passenger {\n  fullName\n  title\n  birthday\n}\n\nfragment StatusBar on BookingInterface {\n  ...StatusBarIcon\n  databaseId\n}\n\nfragment TripInfo on BookingInterface {\n  __typename\n  ... on BookingOneWay {\n    ...TripInfoOneWay\n  }\n  ... on BookingReturn {\n    ...TripInfoReturn\n  }\n  ... on BookingMulticity {\n    ...TripInfoMulticity\n  }\n}\n\nfragment TripOverview on BookingInterface {\n  __typename\n  ... on BookingOneWay {\n    ...OneWayTimeline\n  }\n  ... on BookingReturn {\n    ...ReturnTimeline\n  }\n  ... on BookingMulticity {\n    ...MulticityTimeline\n  }\n}\n\nfragment OneWayTimeline on BookingOneWay {\n  trip {\n    ...Timeline\n  }\n}\n\nfragment ReturnTimeline on BookingReturn {\n  outbound {\n    ...Timeline\n  }\n  inbound {\n    ...Timeline\n  }\n}\n\nfragment MulticityTimeline on BookingMulticity {\n  trips {\n    ...Timeline\n  }\n}\n\nfragment Timeline on Trip {\n  ...TripTitle\n  departure {\n    localTime\n    airport {\n      locationId\n      city {\n        name\n      }\n      id\n    }\n  }\n  arrival {\n    localTime\n    airport {\n      locationId\n      city {\n        name\n      }\n      id\n    }\n  }\n  legs {\n    id\n  }\n  ...TimelineTrip\n}\n\nfragment TripTitle on Trip {\n  ...MulticityTitle\n  duration\n}\n\nfragment TimelineTrip on Trip {\n  legs {\n    departure {\n      ...TimelineDeparture_routeStop\n    }\n    arrival {\n      ...TimelineArrival\n      ...TimelineDeparture_arrival\n    }\n    ...TimelineDeparture_legInfo\n    id\n  }\n}\n\nfragment TimelineDeparture_routeStop on RouteStop {\n  ...TimelineTitle\n  ...TimelineTerminal\n}\n\nfragment TimelineArrival on RouteStop {\n  ...TimelineTitle\n}\n\nfragment TimelineDeparture_arrival on RouteStop {\n  ...TimelineTerminal\n}\n\nfragment TimelineDeparture_legInfo on Leg {\n  flightNumber\n  operatingAirline {\n    name\n    iata\n  }\n  airline {\n    name\n    logoUrl\n    code\n  }\n  vehicle {\n    model\n    manufacturer\n  }\n}\n\nfragment TimelineTerminal on RouteStop {\n  terminal\n  airport {\n    code\n    city {\n      name\n    }\n    id\n  }\n}\n\nfragment TimelineTitle on RouteStop {\n  localTime\n  airport {\n    locationId\n    city {\n      name\n    }\n    id\n  }\n}\n\nfragment MulticityTitle on Trip {\n  departure {\n    ...MulticityName\n  }\n  arrival {\n    ...MulticityName\n  }\n}\n\nfragment MulticityName on RouteStop {\n  airport {\n    city {\n      name\n    }\n    id\n  }\n}\n\nfragment TripInfoOneWay on BookingOneWay {\n  trip {\n    ...TripCities\n    ...TripTimes\n  }\n}\n\nfragment TripInfoReturn on BookingReturn {\n  outbound {\n    ...TripCities\n    ...TripTimes\n  }\n  inbound {\n    ...TripTimes\n  }\n}\n\nfragment TripInfoMulticity on BookingMulticity {\n  trips {\n    ...TripCities\n    ...TripTimes\n  }\n}\n\nfragment TripCities on Trip {\n  departure {\n    ...Location\n  }\n  arrival {\n    ...Location\n  }\n}\n\nfragment TripTimes on Trip {\n  duration\n  departure {\n    ...DateTime\n  }\n  arrival {\n    ...DateTime\n  }\n}\n\nfragment DateTime on RouteStop {\n  localTime\n}\n\nfragment Location on RouteStop {\n  airport {\n    city {\n      name\n    }\n    ...CountryFlag\n    id\n  }\n}\n\nfragment CountryFlag on Location {\n  countryFlagURL\n}\n\nfragment StatusBarIcon on BookingInterface {\n  status\n  isPastBooking\n}\n",
+  "text": "query MainMenuRefetchQuery(\n  $id: Int!\n  $authToken: String!\n) {\n  singleBooking(id: $id, authToken: $authToken) {\n    __typename\n    ...MainMenu\n    id\n  }\n}\n\nfragment MainMenu on BookingInterface {\n  databaseId\n  authToken\n  isPastBooking\n  ...Header\n  ...PassengerMenuGroup\n  ...MissingInformation\n  ...FlightServices\n}\n\nfragment Header on BookingInterface {\n  isPastBooking\n  ...StatusBar\n  ...TripInfo\n  ...TripOverview\n}\n\nfragment PassengerMenuGroup on BookingInterface {\n  ...PassengerMenuDetail\n}\n\nfragment MissingInformation on BookingInterface {\n  passengers {\n    travelDocument {\n      idNumber\n    }\n  }\n}\n\nfragment FlightServices on BookingInterface {\n  __typename\n  isPastBooking\n  ...FlightServicesOneWay\n  ...FlightServicesReturn\n  ...FlightServicesMulticity\n}\n\nfragment FlightServicesOneWay on BookingInterface {\n  ... on BookingOneWay {\n    trip {\n      ...FlightServicesMenuItem\n    }\n  }\n}\n\nfragment FlightServicesReturn on BookingInterface {\n  ... on BookingReturn {\n    inbound {\n      ...FlightServicesMenuItem\n    }\n    outbound {\n      ...FlightServicesMenuItem\n    }\n  }\n}\n\nfragment FlightServicesMulticity on BookingInterface {\n  ... on BookingMulticity {\n    trips {\n      ...FlightServicesMenuItem\n    }\n  }\n}\n\nfragment FlightServicesMenuItem on Trip {\n  legs {\n    type\n    id\n  }\n}\n\nfragment PassengerMenuDetail on BookingInterface {\n  ...Visa\n  passengers {\n    databaseId\n    ...Passenger\n  }\n}\n\nfragment Visa on BookingInterface {\n  passengers {\n    visaInformation {\n      requiredIn {\n        name\n        id\n      }\n      warningIn {\n        name\n        id\n      }\n    }\n  }\n}\n\nfragment Passenger on Passenger {\n  fullName\n  title\n  birthday\n}\n\nfragment StatusBar on BookingInterface {\n  ...StatusBarIcon\n  databaseId\n}\n\nfragment TripInfo on BookingInterface {\n  __typename\n  ... on BookingOneWay {\n    ...TripInfoOneWay\n  }\n  ... on BookingReturn {\n    ...TripInfoReturn\n  }\n  ... on BookingMulticity {\n    ...TripInfoMulticity\n  }\n}\n\nfragment TripOverview on BookingInterface {\n  __typename\n  ... on BookingOneWay {\n    ...OneWayTimeline\n  }\n  ... on BookingReturn {\n    ...ReturnTimeline\n  }\n  ... on BookingMulticity {\n    ...MulticityTimeline\n  }\n}\n\nfragment OneWayTimeline on BookingOneWay {\n  trip {\n    ...Timeline\n  }\n}\n\nfragment ReturnTimeline on BookingReturn {\n  outbound {\n    ...Timeline\n  }\n  inbound {\n    ...Timeline\n  }\n}\n\nfragment MulticityTimeline on BookingMulticity {\n  trips {\n    ...Timeline\n  }\n}\n\nfragment Timeline on Trip {\n  ...TripTitle\n  departure {\n    localTime\n    airport {\n      locationId\n      city {\n        name\n      }\n      id\n    }\n  }\n  arrival {\n    localTime\n    airport {\n      locationId\n      city {\n        name\n      }\n      id\n    }\n  }\n  legs {\n    id\n  }\n  ...TimelineTrip\n}\n\nfragment TripTitle on Trip {\n  ...MulticityTitle\n  duration\n}\n\nfragment TimelineTrip on Trip {\n  legs {\n    ...TimelineLegWrapper\n    guarantee\n    departure {\n      ...TimelineDeparture_routeStop\n    }\n    arrival {\n      ...TimelineArrival\n      ...TimelineDeparture_arrival\n    }\n    ...TimelineDeparture_legInfo\n    id\n  }\n}\n\nfragment TimelineLegWrapper on Leg {\n  ...TripStopOver\n}\n\nfragment TimelineDeparture_routeStop on RouteStop {\n  ...TimelineTitle\n  ...TimelineTerminal\n}\n\nfragment TimelineArrival on RouteStop {\n  ...TimelineTitle\n}\n\nfragment TimelineDeparture_arrival on RouteStop {\n  ...TimelineTerminal\n}\n\nfragment TimelineDeparture_legInfo on Leg {\n  flightNumber\n  operatingAirline {\n    name\n    iata\n  }\n  airline {\n    name\n    logoUrl\n    code\n  }\n  vehicle {\n    model\n    manufacturer\n  }\n}\n\nfragment TimelineTerminal on RouteStop {\n  terminal\n  airport {\n    code\n    city {\n      name\n    }\n    id\n  }\n}\n\nfragment TimelineTitle on RouteStop {\n  localTime\n  airport {\n    locationId\n    city {\n      name\n    }\n    id\n  }\n}\n\nfragment TripStopOver on Leg {\n  guarantee\n}\n\nfragment MulticityTitle on Trip {\n  departure {\n    ...MulticityName\n  }\n  arrival {\n    ...MulticityName\n  }\n}\n\nfragment MulticityName on RouteStop {\n  airport {\n    city {\n      name\n    }\n    id\n  }\n}\n\nfragment TripInfoOneWay on BookingOneWay {\n  trip {\n    ...TripCities\n    ...TripTimes\n  }\n}\n\nfragment TripInfoReturn on BookingReturn {\n  outbound {\n    ...TripCities\n    ...TripTimes\n  }\n  inbound {\n    ...TripTimes\n  }\n}\n\nfragment TripInfoMulticity on BookingMulticity {\n  trips {\n    ...TripCities\n    ...TripTimes\n  }\n}\n\nfragment TripCities on Trip {\n  departure {\n    ...Location\n  }\n  arrival {\n    ...Location\n  }\n}\n\nfragment TripTimes on Trip {\n  duration\n  departure {\n    ...DateTime\n  }\n  arrival {\n    ...DateTime\n  }\n}\n\nfragment DateTime on RouteStop {\n  localTime\n}\n\nfragment Location on RouteStop {\n  airport {\n    city {\n      name\n    }\n    ...CountryFlag\n    id\n  }\n}\n\nfragment CountryFlag on Location {\n  countryFlagURL\n}\n\nfragment StatusBarIcon on BookingInterface {\n  status\n  isPastBooking\n}\n",
   "metadata": {},
   "fragment": {
     "kind": "Fragment",
diff --git a/app/MMB/src/navigation/GuaranteeScreen.js b/app/MMB/src/navigation/GuaranteeScreen.js
new file mode 100644
index 00000000..d1019dec
--- /dev/null
+++ b/app/MMB/src/navigation/GuaranteeScreen.js
@@ -0,0 +1,37 @@
+// @flow strict
+
+import * as React from 'react';
+import { WebView } from '@kiwicom/mobile-shared';
+import {
+  HeaderButton,
+  type NavigationType,
+  HeaderTitle,
+} from '@kiwicom/mobile-navigation';
+import { Translation } from '@kiwicom/mobile-localization';
+
+type Props = {|
+  +navigation: NavigationType,
+|};
+
+export default function GuaranteeScreen() {
+  return (
+    <WebView
+      source={{ uri: 'https://www.kiwi.com/en/pages/guarantee?ui=webview' }}
+    />
+  );
+}
+
+GuaranteeScreen.navigationOptions = ({ navigation }: Props) => {
+  function goBack() {
+    navigation.goBack(null);
+  }
+
+  return {
+    headerLeft: <HeaderButton.CloseModal onPress={goBack} />,
+    headerTitle: (
+      <HeaderTitle>
+        <Translation id="mmb.guarantee_screen.title" />
+      </HeaderTitle>
+    ),
+  };
+};
diff --git a/app/MMB/src/navigation/NavigationStack.js b/app/MMB/src/navigation/NavigationStack.js
index d2cab1d8..310f48e1 100644
--- a/app/MMB/src/navigation/NavigationStack.js
+++ b/app/MMB/src/navigation/NavigationStack.js
@@ -17,6 +17,7 @@ import TravelDocumentModalScreen from './TravelDocumentModalScreen';
 import AppleWalletScreen from './AppleWalletScreen';
 import AddressPickerScreen from './AddressPickerScreen';
 import TransportationMap from '../scenes/tripServices/transportation/TransportationMap';
+import GuaranteeScreen from './GuaranteeScreen';
 
 // THIS IS ONLY FOR MOBILE DEVICES!
 const Screens = {};
@@ -103,6 +104,17 @@ const TransportationStack = StackNavigator(
   },
 );
 
+const GuaranteeStack = StackNavigator(
+  {
+    GuaranteeScreen: withMappedProps(GuaranteeScreen),
+  },
+  {
+    ...StackNavigatorOptions,
+    initialRouteName: 'GuaranteeScreen',
+    mode: 'modal',
+  },
+);
+
 export default StackNavigator(
   {
     MMBMainStack: {
@@ -114,6 +126,9 @@ export default StackNavigator(
     TransportationMap: {
       screen: TransportationStack,
     },
+    GuaranteeStack: {
+      screen: GuaranteeStack,
+    },
   },
   {
     ...StackNavigatorOptions,
diff --git a/app/MMB/src/scenes/tripOverview/TimelineDeparture.js b/app/MMB/src/scenes/tripOverview/TimelineDeparture.js
index 7baf0b22..1bf7ea67 100644
--- a/app/MMB/src/scenes/tripOverview/TimelineDeparture.js
+++ b/app/MMB/src/scenes/tripOverview/TimelineDeparture.js
@@ -79,12 +79,15 @@ function TimelineDeparture(props: Props) {
             }
           />
 
-          <TimelineRow
-            icon={<TextIcon code="R" style={styleSheet.icon} />}
-            value={
-              <Translation passThrough={`${manufacturer} ${flightModel}`} />
-            }
-          />
+          {manufacturer !== '' &&
+            flightModel !== '' && (
+              <TimelineRow
+                icon={<TextIcon code="R" style={styleSheet.icon} />}
+                value={
+                  <Translation passThrough={`${manufacturer} ${flightModel}`} />
+                }
+              />
+            )}
 
           <TimelineTerminal
             data={props.routeStop}
diff --git a/app/MMB/src/scenes/tripOverview/TimelineLegWrapper.js b/app/MMB/src/scenes/tripOverview/TimelineLegWrapper.js
index 363e0a5f..e7dc2d7a 100644
--- a/app/MMB/src/scenes/tripOverview/TimelineLegWrapper.js
+++ b/app/MMB/src/scenes/tripOverview/TimelineLegWrapper.js
@@ -5,23 +5,29 @@ import { View } from 'react-native';
 import { StyleSheet } from '@kiwicom/mobile-shared';
 import Dash from 'react-native-dash';
 import { defaultTokens } from '@kiwicom/mobile-orbit';
+import { graphql, createFragmentContainer } from '@kiwicom/mobile-relay';
+
+import TripStopOver from './TripStopOver';
+import type { TimelineLegWrapper as TimelineLegWrapperType } from './__generated__/TimelineLegWrapper.graphql';
 
 type Props = {|
   +children: React.Node,
   +shouldDrawDashedLine: boolean,
   +shouldDrawSolidLine: boolean,
   +color: string,
+  +data: TimelineLegWrapperType,
 |};
 
 const lineWidth = 2;
 const circleSize = 12;
 const lineOffset = circleSize / 2 - lineWidth / 2;
 
-export default function TimelineLegWrapper({
+function TimelineLegWrapper({
   children,
   shouldDrawDashedLine,
   shouldDrawSolidLine,
   color,
+  data,
 }: Props) {
   const itemWrapperStyle = {};
 
@@ -45,7 +51,10 @@ export default function TimelineLegWrapper({
       )}
 
       <View style={[styles.itemWrapper, itemWrapperStyle]}>
-        <View style={styles.item}>{children}</View>
+        <View style={styles.item}>
+          {children}
+          {shouldDrawDashedLine === true && <TripStopOver data={data} />}
+        </View>
       </View>
       <View style={[styles.circle, { backgroundColor: color }]} />
     </View>
@@ -84,3 +93,12 @@ const styles = StyleSheet.create({
     marginBottom: 20,
   },
 });
+
+export default createFragmentContainer(
+  TimelineLegWrapper,
+  graphql`
+    fragment TimelineLegWrapper on Leg {
+      ...TripStopOver
+    }
+  `,
+);
diff --git a/app/MMB/src/scenes/tripOverview/TimelineTrip.js b/app/MMB/src/scenes/tripOverview/TimelineTrip.js
index 1a04a481..3d5ff018 100644
--- a/app/MMB/src/scenes/tripOverview/TimelineTrip.js
+++ b/app/MMB/src/scenes/tripOverview/TimelineTrip.js
@@ -37,6 +37,7 @@ function TimelineTrip(props: Props) {
               shouldDrawDashedLine={false}
               shouldDrawSolidLine={true}
               color={departureColorCode}
+              data={null} // This is not needed on this wrapper
             >
               <TimelineDeparture
                 routeStop={leg.departure}
@@ -48,6 +49,7 @@ function TimelineTrip(props: Props) {
               shouldDrawDashedLine={index + 1 !== legs.length}
               shouldDrawSolidLine={false}
               color={arrivalColorCode}
+              data={idx(legs, _ => _[index + 1]) || null} // Guarantee field is on next leg
             >
               <TimelineArrival data={leg.arrival} />
             </TimelineLegWrapper>
@@ -63,6 +65,8 @@ export default createFragmentContainer(
   graphql`
     fragment TimelineTrip on Trip {
       legs {
+        ...TimelineLegWrapper
+        guarantee
         departure {
           ...TimelineDeparture_routeStop
         }
diff --git a/app/MMB/src/scenes/tripOverview/TripStopOver.js b/app/MMB/src/scenes/tripOverview/TripStopOver.js
new file mode 100644
index 00000000..3e979979
--- /dev/null
+++ b/app/MMB/src/scenes/tripOverview/TripStopOver.js
@@ -0,0 +1,85 @@
+// @flow strict
+
+import * as React from 'react';
+import { View } from 'react-native';
+import { Translation } from '@kiwicom/mobile-localization';
+import {
+  Duration,
+  StyleSheet,
+  Touchable,
+  Text,
+  TextIcon,
+} from '@kiwicom/mobile-shared';
+import { defaultTokens } from '@kiwicom/mobile-orbit';
+import {
+  withNavigation,
+  type NavigationType,
+} from '@kiwicom/mobile-navigation';
+import { graphql, createFragmentContainer } from '@kiwicom/mobile-relay';
+import idx from 'idx';
+
+import type { TripStopOver as TripStopOverType } from './__generated__/TripStopOver.graphql';
+
+type Props = {|
+  +navigation: NavigationType,
+  +data: TripStopOverType,
+|};
+
+class TripStopOver extends React.Component<Props> {
+  onPress = () => {
+    this.props.navigation.navigate('GuaranteeScreen');
+  };
+
+  render = () => {
+    const isKiwiGuarantee =
+      idx(this.props, _ => _.data.guarantee) === 'KIWICOM';
+    return (
+      <View style={styles.container}>
+        {/* TODO: Replace hardcoded duration, need to extend graphql first */}
+        <Duration duration={250} iconStyle={styles.iconMargin} />
+
+        {isKiwiGuarantee && (
+          <View style={styles.row}>
+            <TextIcon code="h" style={[styles.icon, styles.iconMargin]} />
+            <Touchable onPress={this.onPress}>
+              <Text style={styles.buttonText}>
+                <Translation id="mmb.trip_overview.trip_stopover.kiwi_guarantee" />
+              </Text>
+            </Touchable>
+          </View>
+        )}
+      </View>
+    );
+  };
+}
+
+const styles = StyleSheet.create({
+  container: {
+    paddingTop: 20,
+    paddingBottom: 5,
+  },
+  row: {
+    flexDirection: 'row',
+    alignItems: 'center',
+  },
+  buttonText: {
+    color: defaultTokens.paletteProductNormal,
+    fontSize: 12,
+  },
+  icon: {
+    fontSize: 10,
+    color: defaultTokens.colorIconSecondary,
+  },
+  iconMargin: {
+    marginEnd: 8,
+  },
+});
+
+export default createFragmentContainer(
+  withNavigation(TripStopOver),
+  graphql`
+    fragment TripStopOver on Leg {
+      guarantee
+    }
+  `,
+);
diff --git a/app/MMB/src/scenes/tripOverview/__generated__/TimelineLegWrapper.graphql.js b/app/MMB/src/scenes/tripOverview/__generated__/TimelineLegWrapper.graphql.js
new file mode 100644
index 00000000..ac850108
--- /dev/null
+++ b/app/MMB/src/scenes/tripOverview/__generated__/TimelineLegWrapper.graphql.js
@@ -0,0 +1,37 @@
+/**
+ * @flow
+ */
+
+/* eslint-disable */
+
+'use strict';
+
+/*::
+import type { ConcreteFragment } from 'relay-runtime';
+type TripStopOver$ref = any;
+import type { FragmentReference } from "relay-runtime";
+declare export opaque type TimelineLegWrapper$ref: FragmentReference;
+export type TimelineLegWrapper = {|
+  +$fragmentRefs: TripStopOver$ref,
+  +$refType: TimelineLegWrapper$ref,
+|};
+*/
+
+
+const node/*: ConcreteFragment*/ = {
+  "kind": "Fragment",
+  "name": "TimelineLegWrapper",
+  "type": "Leg",
+  "metadata": null,
+  "argumentDefinitions": [],
+  "selections": [
+    {
+      "kind": "FragmentSpread",
+      "name": "TripStopOver",
+      "args": null
+    }
+  ]
+};
+// prettier-ignore
+(node/*: any*/).hash = 'a600684d240a41a3ab9efd92499d322a';
+module.exports = node;
diff --git a/app/MMB/src/scenes/tripOverview/__generated__/TimelineTrip.graphql.js b/app/MMB/src/scenes/tripOverview/__generated__/TimelineTrip.graphql.js
index cf984adc..8569543f 100644
--- a/app/MMB/src/scenes/tripOverview/__generated__/TimelineTrip.graphql.js
+++ b/app/MMB/src/scenes/tripOverview/__generated__/TimelineTrip.graphql.js
@@ -12,17 +12,20 @@ type TimelineArrival$ref = any;
 type TimelineDeparture_arrival$ref = any;
 type TimelineDeparture_legInfo$ref = any;
 type TimelineDeparture_routeStop$ref = any;
+type TimelineLegWrapper$ref = any;
+export type CoveredBy = "CARRIER" | "KIWICOM" | "%future added value";
 import type { FragmentReference } from "relay-runtime";
 declare export opaque type TimelineTrip$ref: FragmentReference;
 export type TimelineTrip = {|
   +legs: ?$ReadOnlyArray<?{|
+    +guarantee: ?CoveredBy,
     +departure: ?{|
       +$fragmentRefs: TimelineDeparture_routeStop$ref
     |},
     +arrival: ?{|
       +$fragmentRefs: TimelineArrival$ref & TimelineDeparture_arrival$ref
     |},
-    +$fragmentRefs: TimelineDeparture_legInfo$ref,
+    +$fragmentRefs: TimelineLegWrapper$ref & TimelineDeparture_legInfo$ref,
   |}>,
   +$refType: TimelineTrip$ref,
 |};
@@ -45,6 +48,18 @@ const node/*: ConcreteFragment*/ = {
       "concreteType": "Leg",
       "plural": true,
       "selections": [
+        {
+          "kind": "FragmentSpread",
+          "name": "TimelineLegWrapper",
+          "args": null
+        },
+        {
+          "kind": "ScalarField",
+          "alias": null,
+          "name": "guarantee",
+          "args": null,
+          "storageKey": null
+        },
         {
           "kind": "LinkedField",
           "alias": null,
@@ -92,5 +107,5 @@ const node/*: ConcreteFragment*/ = {
   ]
 };
 // prettier-ignore
-(node/*: any*/).hash = 'df429829fbb935564273c5864c21b887';
+(node/*: any*/).hash = 'd57713f20d3b3e977c39b79d0c5f9efb';
 module.exports = node;
diff --git a/app/MMB/src/scenes/tripOverview/__generated__/TripOverviewTabletQuery.graphql.js b/app/MMB/src/scenes/tripOverview/__generated__/TripOverviewTabletQuery.graphql.js
index 6194d14b..f3982ba9 100644
--- a/app/MMB/src/scenes/tripOverview/__generated__/TripOverviewTabletQuery.graphql.js
+++ b/app/MMB/src/scenes/tripOverview/__generated__/TripOverviewTabletQuery.graphql.js
@@ -1,6 +1,6 @@
 /**
  * @flow
- * @relayHash c57a2479d23df511292455ffea1c2c7f
+ * @relayHash f31dd00f934fcd75f2f7f96d0222c5a9
  */
 
 /* eslint-disable */
@@ -107,6 +107,8 @@ fragment TripTitle on Trip {
 
 fragment TimelineTrip on Trip {
   legs {
+    ...TimelineLegWrapper
+    guarantee
     departure {
       ...TimelineDeparture_routeStop
     }
@@ -119,6 +121,10 @@ fragment TimelineTrip on Trip {
   }
 }
 
+fragment TimelineLegWrapper on Leg {
+  ...TripStopOver
+}
+
 fragment TimelineDeparture_routeStop on RouteStop {
   ...TimelineTitle
   ...TimelineTerminal
@@ -171,6 +177,10 @@ fragment TimelineTitle on RouteStop {
   }
 }
 
+fragment TripStopOver on Leg {
+  guarantee
+}
+
 fragment MulticityTitle on Trip {
   departure {
     ...MulticityName
@@ -346,6 +356,13 @@ v10 = [
     "plural": true,
     "selections": [
       v2,
+      {
+        "kind": "ScalarField",
+        "alias": null,
+        "name": "guarantee",
+        "args": null,
+        "storageKey": null
+      },
       {
         "kind": "LinkedField",
         "alias": null,
@@ -445,7 +462,7 @@ return {
   "operationKind": "query",
   "name": "TripOverviewTabletQuery",
   "id": null,
-  "text": "query TripOverviewTabletQuery(\n  $id: Int!\n  $authToken: String!\n) {\n  singleBooking(id: $id, authToken: $authToken) {\n    __typename\n    ...TripOverview\n    id\n  }\n}\n\nfragment TripOverview on BookingInterface {\n  __typename\n  ... on BookingOneWay {\n    ...OneWayTimeline\n  }\n  ... on BookingReturn {\n    ...ReturnTimeline\n  }\n  ... on BookingMulticity {\n    ...MulticityTimeline\n  }\n}\n\nfragment OneWayTimeline on BookingOneWay {\n  trip {\n    ...Timeline\n  }\n}\n\nfragment ReturnTimeline on BookingReturn {\n  outbound {\n    ...Timeline\n  }\n  inbound {\n    ...Timeline\n  }\n}\n\nfragment MulticityTimeline on BookingMulticity {\n  trips {\n    ...Timeline\n  }\n}\n\nfragment Timeline on Trip {\n  ...TripTitle\n  departure {\n    localTime\n    airport {\n      locationId\n      city {\n        name\n      }\n      id\n    }\n  }\n  arrival {\n    localTime\n    airport {\n      locationId\n      city {\n        name\n      }\n      id\n    }\n  }\n  legs {\n    id\n  }\n  ...TimelineTrip\n}\n\nfragment TripTitle on Trip {\n  ...MulticityTitle\n  duration\n}\n\nfragment TimelineTrip on Trip {\n  legs {\n    departure {\n      ...TimelineDeparture_routeStop\n    }\n    arrival {\n      ...TimelineArrival\n      ...TimelineDeparture_arrival\n    }\n    ...TimelineDeparture_legInfo\n    id\n  }\n}\n\nfragment TimelineDeparture_routeStop on RouteStop {\n  ...TimelineTitle\n  ...TimelineTerminal\n}\n\nfragment TimelineArrival on RouteStop {\n  ...TimelineTitle\n}\n\nfragment TimelineDeparture_arrival on RouteStop {\n  ...TimelineTerminal\n}\n\nfragment TimelineDeparture_legInfo on Leg {\n  flightNumber\n  operatingAirline {\n    name\n    iata\n  }\n  airline {\n    name\n    logoUrl\n    code\n  }\n  vehicle {\n    model\n    manufacturer\n  }\n}\n\nfragment TimelineTerminal on RouteStop {\n  terminal\n  airport {\n    code\n    city {\n      name\n    }\n    id\n  }\n}\n\nfragment TimelineTitle on RouteStop {\n  localTime\n  airport {\n    locationId\n    city {\n      name\n    }\n    id\n  }\n}\n\nfragment MulticityTitle on Trip {\n  departure {\n    ...MulticityName\n  }\n  arrival {\n    ...MulticityName\n  }\n}\n\nfragment MulticityName on RouteStop {\n  airport {\n    city {\n      name\n    }\n    id\n  }\n}\n",
+  "text": "query TripOverviewTabletQuery(\n  $id: Int!\n  $authToken: String!\n) {\n  singleBooking(id: $id, authToken: $authToken) {\n    __typename\n    ...TripOverview\n    id\n  }\n}\n\nfragment TripOverview on BookingInterface {\n  __typename\n  ... on BookingOneWay {\n    ...OneWayTimeline\n  }\n  ... on BookingReturn {\n    ...ReturnTimeline\n  }\n  ... on BookingMulticity {\n    ...MulticityTimeline\n  }\n}\n\nfragment OneWayTimeline on BookingOneWay {\n  trip {\n    ...Timeline\n  }\n}\n\nfragment ReturnTimeline on BookingReturn {\n  outbound {\n    ...Timeline\n  }\n  inbound {\n    ...Timeline\n  }\n}\n\nfragment MulticityTimeline on BookingMulticity {\n  trips {\n    ...Timeline\n  }\n}\n\nfragment Timeline on Trip {\n  ...TripTitle\n  departure {\n    localTime\n    airport {\n      locationId\n      city {\n        name\n      }\n      id\n    }\n  }\n  arrival {\n    localTime\n    airport {\n      locationId\n      city {\n        name\n      }\n      id\n    }\n  }\n  legs {\n    id\n  }\n  ...TimelineTrip\n}\n\nfragment TripTitle on Trip {\n  ...MulticityTitle\n  duration\n}\n\nfragment TimelineTrip on Trip {\n  legs {\n    ...TimelineLegWrapper\n    guarantee\n    departure {\n      ...TimelineDeparture_routeStop\n    }\n    arrival {\n      ...TimelineArrival\n      ...TimelineDeparture_arrival\n    }\n    ...TimelineDeparture_legInfo\n    id\n  }\n}\n\nfragment TimelineLegWrapper on Leg {\n  ...TripStopOver\n}\n\nfragment TimelineDeparture_routeStop on RouteStop {\n  ...TimelineTitle\n  ...TimelineTerminal\n}\n\nfragment TimelineArrival on RouteStop {\n  ...TimelineTitle\n}\n\nfragment TimelineDeparture_arrival on RouteStop {\n  ...TimelineTerminal\n}\n\nfragment TimelineDeparture_legInfo on Leg {\n  flightNumber\n  operatingAirline {\n    name\n    iata\n  }\n  airline {\n    name\n    logoUrl\n    code\n  }\n  vehicle {\n    model\n    manufacturer\n  }\n}\n\nfragment TimelineTerminal on RouteStop {\n  terminal\n  airport {\n    code\n    city {\n      name\n    }\n    id\n  }\n}\n\nfragment TimelineTitle on RouteStop {\n  localTime\n  airport {\n    locationId\n    city {\n      name\n    }\n    id\n  }\n}\n\nfragment TripStopOver on Leg {\n  guarantee\n}\n\nfragment MulticityTitle on Trip {\n  departure {\n    ...MulticityName\n  }\n  arrival {\n    ...MulticityName\n  }\n}\n\nfragment MulticityName on RouteStop {\n  airport {\n    city {\n      name\n    }\n    id\n  }\n}\n",
   "metadata": {},
   "fragment": {
     "kind": "Fragment",
diff --git a/app/MMB/src/scenes/tripOverview/__generated__/TripStopOver.graphql.js b/app/MMB/src/scenes/tripOverview/__generated__/TripStopOver.graphql.js
new file mode 100644
index 00000000..ca20538d
--- /dev/null
+++ b/app/MMB/src/scenes/tripOverview/__generated__/TripStopOver.graphql.js
@@ -0,0 +1,39 @@
+/**
+ * @flow
+ */
+
+/* eslint-disable */
+
+'use strict';
+
+/*::
+import type { ConcreteFragment } from 'relay-runtime';
+export type CoveredBy = "CARRIER" | "KIWICOM" | "%future added value";
+import type { FragmentReference } from "relay-runtime";
+declare export opaque type TripStopOver$ref: FragmentReference;
+export type TripStopOver = {|
+  +guarantee: ?CoveredBy,
+  +$refType: TripStopOver$ref,
+|};
+*/
+
+
+const node/*: ConcreteFragment*/ = {
+  "kind": "Fragment",
+  "name": "TripStopOver",
+  "type": "Leg",
+  "metadata": null,
+  "argumentDefinitions": [],
+  "selections": [
+    {
+      "kind": "ScalarField",
+      "alias": null,
+      "name": "guarantee",
+      "args": null,
+      "storageKey": null
+    }
+  ]
+};
+// prettier-ignore
+(node/*: any*/).hash = 'eb88a35a25936daf8a481e1f3a9efbb5';
+module.exports = node;
diff --git a/packages/localization/src/vocabularies/ManageMyBooking.js b/packages/localization/src/vocabularies/ManageMyBooking.js
index 56a5d3bd..521db13b 100644
--- a/packages/localization/src/vocabularies/ManageMyBooking.js
+++ b/packages/localization/src/vocabularies/ManageMyBooking.js
@@ -32,6 +32,9 @@ export default {
   'mmb.alert.something_went_wrong':
     'Something went wrong; please try again later.',
 
+  // MMB Guarantee screen
+  'mmb.guarantee_screen.title': 'Help',
+
   // MMB Boarding passes
   'mmb.boarding_passes.boarding_pass': 'Boarding Pass',
   'mmb.boarding_passes.boarding_pass_return.departure': 'Departure',
@@ -460,4 +463,5 @@ export default {
   // MMB Trip overview
   'mmb.trip_overview.trip_title.outbound': 'Outbound',
   'mmb.trip_overview.trip_title.inbound': 'Inbound',
+  'mmb.trip_overview.trip_stopover.kiwi_guarantee': 'Kiwi.com Guarantee',
 };
diff --git a/packages/navigation/types/Navigation.js b/packages/navigation/types/Navigation.js
index 130fb717..012d9b75 100644
--- a/packages/navigation/types/Navigation.js
+++ b/packages/navigation/types/Navigation.js
@@ -50,7 +50,8 @@ type MMBStackNavigatorNames =
   | 'MMBHotelsStack'
   | 'MMBMainSwitchStack'
   | 'AddressPickerScreen'
-  | 'TransportationMap';
+  | 'TransportationMap'
+  | 'GuaranteeScreen';
 
 type HomepageStackNavigatorRouteNames = 'Home';
 type PlaygroundNavigationRouteNames = 'Playground';
diff --git a/packages/shared/src/Duration.js b/packages/shared/src/Duration.js
index 1c5427b2..7665fbc7 100644
--- a/packages/shared/src/Duration.js
+++ b/packages/shared/src/Duration.js
@@ -14,6 +14,7 @@ type Props = {|
   +showIcon: boolean,
   +duration: ?number,
   +style?: StylePropType,
+  +iconStyle?: StylePropType,
 |};
 
 export const separateHours = (durationInMinutes: number) => {
@@ -34,7 +35,9 @@ export default function Duration(props: Props) {
 
   return (
     <View style={styleSheet.row}>
-      {props.showIcon && <TextIcon code="e" style={styleSheet.durationText} />}
+      {props.showIcon && (
+        <TextIcon code="e" style={[styleSheet.durationText, props.iconStyle]} />
+      )}
       <Text style={[styleSheet.durationText, props.style]}>
         <Translation passThrough=" " />
         <Translation passThrough={hours} />


Test patch:
diff --git a/packages/shared/src/__tests__/__snapshots__/Duration.test.js.snap b/packages/shared/src/__tests__/__snapshots__/Duration.test.js.snap
index c2c35514..17615e5f 100644
--- a/packages/shared/src/__tests__/__snapshots__/Duration.test.js.snap
+++ b/packages/shared/src/__tests__/__snapshots__/Duration.test.js.snap
@@ -12,10 +12,13 @@ exports[`works with broken input 1`] = `
   <TextIcon
     code="e"
     style={
-      Object {
-        "color": "#7f91a8",
-        "fontSize": 10,
-      }
+      Array [
+        Object {
+          "color": "#7f91a8",
+          "fontSize": 10,
+        },
+        undefined,
+      ]
     }
   />
   <Text
@@ -63,10 +66,13 @@ exports[`works with broken input 2`] = `
   <TextIcon
     code="e"
     style={
-      Object {
-        "color": "#7f91a8",
-        "fontSize": 10,
-      }
+      Array [
+        Object {
+          "color": "#7f91a8",
+          "fontSize": 10,
+        },
+        undefined,
+      ]
     }
   />
   <Text