Repository: kiwicom/mobile
Pull request #973 (2018-08-09 13:19:45)

MMB: Add is flying component to explore main menu


Patch:
diff --git a/app/MMB/src/__generated__/MainMenuContainerQuery.graphql.js b/app/MMB/src/__generated__/MainMenuContainerQuery.graphql.js
index f1de9769..c8b2fe7d 100644
--- a/app/MMB/src/__generated__/MainMenuContainerQuery.graphql.js
+++ b/app/MMB/src/__generated__/MainMenuContainerQuery.graphql.js
@@ -1,6 +1,6 @@
 /**
  * @flow
- * @relayHash 106474c3963ed70cbbccab0a0a877f8f
+ * @relayHash b23242861fa13b887ff2d660440e67de
  */
 
 /* eslint-disable */
@@ -334,6 +334,10 @@ fragment ExploreVariant_trip on Trip {
       ...BookingConfirmed_departure
       time
     }
+    arrival {
+      ...IsFlying
+      time
+    }
     id
   }
 }
@@ -368,6 +372,18 @@ fragment PriorToDeparture on Leg {
 fragment BookingConfirmed_departure on RouteStop {
   time
 }
+
+fragment IsFlying on RouteStop {
+  localTime
+  airport {
+    code
+    name
+    city {
+      name
+    }
+    id
+  }
+}
 */
 
 const node/*: ConcreteRequest*/ = (function(){
@@ -508,21 +524,6 @@ v12 = {
   ]
 },
 v13 = {
-  "kind": "LinkedField",
-  "alias": null,
-  "name": "airport",
-  "storageKey": null,
-  "args": null,
-  "concreteType": "Location",
-  "plural": false,
-  "selections": [
-    v3,
-    v4,
-    v9,
-    v7
-  ]
-},
-v14 = {
   "kind": "LinkedField",
   "alias": null,
   "name": "legs",
@@ -555,7 +556,21 @@ v14 = {
           "args": null,
           "storageKey": null
         },
-        v13,
+        {
+          "kind": "LinkedField",
+          "alias": null,
+          "name": "airport",
+          "storageKey": null,
+          "args": null,
+          "concreteType": "Location",
+          "plural": false,
+          "selections": [
+            v3,
+            v4,
+            v9,
+            v7
+          ]
+        },
         v6
       ]
     },
@@ -568,8 +583,30 @@ v14 = {
       "concreteType": "RouteStop",
       "plural": false,
       "selections": [
-        v13,
-        v11
+        {
+          "kind": "LinkedField",
+          "alias": null,
+          "name": "airport",
+          "storageKey": null,
+          "args": null,
+          "concreteType": "Location",
+          "plural": false,
+          "selections": [
+            v3,
+            v4,
+            {
+              "kind": "ScalarField",
+              "alias": null,
+              "name": "code",
+              "args": null,
+              "storageKey": null
+            },
+            v7,
+            v9
+          ]
+        },
+        v11,
+        v6
       ]
     },
     v4,
@@ -601,7 +638,7 @@ v14 = {
     }
   ]
 },
-v15 = {
+v14 = {
   "kind": "ScalarField",
   "alias": null,
   "name": "duration",
@@ -613,7 +650,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  ...ExploreCity\n  ...Header\n  ...PassengerMenuGroup\n  ...MissingInformation\n}\n\nfragment ExploreCity on BookingInterface {\n  ...CardContent\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 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  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    departure {\n      ...TimelineDeparture_routeStop\n    }\n    arrival {\n      ...TimelineArrival\n    }\n    ...TimelineDeparture_legInfo\n    id\n  }\n}\n\nfragment TimelineDeparture_routeStop on RouteStop {\n  ...TimelineTitle\n}\n\nfragment TimelineArrival on RouteStop {\n  ...TimelineTitle\n}\n\nfragment TimelineDeparture_legInfo on Leg {\n  flightNumber\n  airline {\n    name\n    logoUrl\n  }\n}\n\nfragment TimelineTitle on RouteStop {\n  localTime\n  airport {\n    locationId\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 Duration on Trip {\n  duration\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\nfragment CardContent on BookingInterface {\n  __typename\n  ...ExploreOneWay\n  ...ExploreReturn\n  ...ExploreMulticity\n}\n\nfragment ExploreOneWay on BookingInterface {\n  ... on BookingOneWay {\n    trip {\n      ...ExploreVariant_trip\n    }\n  }\n}\n\nfragment ExploreReturn on BookingInterface {\n  ... on BookingReturn {\n    outbound {\n      ...ExploreVariant_trip\n      arrival {\n        time\n      }\n    }\n    inbound {\n      ...ExploreVariant_trip\n    }\n  }\n}\n\nfragment ExploreMulticity on BookingInterface {\n  ... on BookingMulticity {\n    trips {\n      arrival {\n        time\n      }\n      departure {\n        time\n      }\n      ...ExploreVariant_trip\n    }\n  }\n}\n\nfragment ExploreVariant_trip on Trip {\n  departure {\n    time\n  }\n  arrival {\n    ...BookingConfirmed_arrival\n  }\n  legs {\n    ...PriorToDeparture\n    departure {\n      ...BookingConfirmed_departure\n      time\n    }\n    id\n  }\n}\n\nfragment BookingConfirmed_arrival on RouteStop {\n  airport {\n    city {\n      name\n    }\n    id\n  }\n}\n\nfragment PriorToDeparture on Leg {\n  recheckRequired\n  departure {\n    localTime\n    gate\n    airport {\n      name\n      id\n    }\n  }\n  arrival {\n    airport {\n      name\n      id\n    }\n  }\n}\n\nfragment BookingConfirmed_departure on RouteStop {\n  time\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  ...ExploreCity\n  ...Header\n  ...PassengerMenuGroup\n  ...MissingInformation\n}\n\nfragment ExploreCity on BookingInterface {\n  ...CardContent\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 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  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    departure {\n      ...TimelineDeparture_routeStop\n    }\n    arrival {\n      ...TimelineArrival\n    }\n    ...TimelineDeparture_legInfo\n    id\n  }\n}\n\nfragment TimelineDeparture_routeStop on RouteStop {\n  ...TimelineTitle\n}\n\nfragment TimelineArrival on RouteStop {\n  ...TimelineTitle\n}\n\nfragment TimelineDeparture_legInfo on Leg {\n  flightNumber\n  airline {\n    name\n    logoUrl\n  }\n}\n\nfragment TimelineTitle on RouteStop {\n  localTime\n  airport {\n    locationId\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 Duration on Trip {\n  duration\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\nfragment CardContent on BookingInterface {\n  __typename\n  ...ExploreOneWay\n  ...ExploreReturn\n  ...ExploreMulticity\n}\n\nfragment ExploreOneWay on BookingInterface {\n  ... on BookingOneWay {\n    trip {\n      ...ExploreVariant_trip\n    }\n  }\n}\n\nfragment ExploreReturn on BookingInterface {\n  ... on BookingReturn {\n    outbound {\n      ...ExploreVariant_trip\n      arrival {\n        time\n      }\n    }\n    inbound {\n      ...ExploreVariant_trip\n    }\n  }\n}\n\nfragment ExploreMulticity on BookingInterface {\n  ... on BookingMulticity {\n    trips {\n      arrival {\n        time\n      }\n      departure {\n        time\n      }\n      ...ExploreVariant_trip\n    }\n  }\n}\n\nfragment ExploreVariant_trip on Trip {\n  departure {\n    time\n  }\n  arrival {\n    ...BookingConfirmed_arrival\n  }\n  legs {\n    ...PriorToDeparture\n    departure {\n      ...BookingConfirmed_departure\n      time\n    }\n    arrival {\n      ...IsFlying\n      time\n    }\n    id\n  }\n}\n\nfragment BookingConfirmed_arrival on RouteStop {\n  airport {\n    city {\n      name\n    }\n    id\n  }\n}\n\nfragment PriorToDeparture on Leg {\n  recheckRequired\n  departure {\n    localTime\n    gate\n    airport {\n      name\n      id\n    }\n  }\n  arrival {\n    airport {\n      name\n      id\n    }\n  }\n}\n\nfragment BookingConfirmed_departure on RouteStop {\n  time\n}\n\nfragment IsFlying on RouteStop {\n  localTime\n  airport {\n    code\n    name\n    city {\n      name\n    }\n    id\n  }\n}\n",
   "metadata": {},
   "fragment": {
     "kind": "Fragment",
@@ -794,8 +831,8 @@ return {
                     ]
                   },
                   v12,
-                  v14,
-                  v15
+                  v13,
+                  v14
                 ]
               }
             ]
@@ -828,8 +865,8 @@ return {
                       v11
                     ]
                   },
-                  v14,
-                  v15
+                  v13,
+                  v14
                 ]
               },
               {
@@ -894,8 +931,8 @@ return {
                       v11
                     ]
                   },
-                  v14,
-                  v15
+                  v13,
+                  v14
                 ]
               }
             ]
@@ -927,8 +964,8 @@ return {
                       v11
                     ]
                   },
-                  v14,
-                  v15
+                  v13,
+                  v14
                 ]
               }
             ]
diff --git a/app/MMB/src/__generated__/MainMenuRefetchQuery.graphql.js b/app/MMB/src/__generated__/MainMenuRefetchQuery.graphql.js
index 9136dab7..d21b8d37 100644
--- a/app/MMB/src/__generated__/MainMenuRefetchQuery.graphql.js
+++ b/app/MMB/src/__generated__/MainMenuRefetchQuery.graphql.js
@@ -1,6 +1,6 @@
 /**
  * @flow
- * @relayHash 67721fb13604649adb6f291dc40c3861
+ * @relayHash bff20e9c98aa09a716aa35bad24caeb5
  */
 
 /* eslint-disable */
@@ -334,6 +334,10 @@ fragment ExploreVariant_trip on Trip {
       ...BookingConfirmed_departure
       time
     }
+    arrival {
+      ...IsFlying
+      time
+    }
     id
   }
 }
@@ -368,6 +372,18 @@ fragment PriorToDeparture on Leg {
 fragment BookingConfirmed_departure on RouteStop {
   time
 }
+
+fragment IsFlying on RouteStop {
+  localTime
+  airport {
+    code
+    name
+    city {
+      name
+    }
+    id
+  }
+}
 */
 
 const node/*: ConcreteRequest*/ = (function(){
@@ -508,21 +524,6 @@ v12 = {
   ]
 },
 v13 = {
-  "kind": "LinkedField",
-  "alias": null,
-  "name": "airport",
-  "storageKey": null,
-  "args": null,
-  "concreteType": "Location",
-  "plural": false,
-  "selections": [
-    v3,
-    v4,
-    v9,
-    v7
-  ]
-},
-v14 = {
   "kind": "LinkedField",
   "alias": null,
   "name": "legs",
@@ -555,7 +556,21 @@ v14 = {
           "args": null,
           "storageKey": null
         },
-        v13,
+        {
+          "kind": "LinkedField",
+          "alias": null,
+          "name": "airport",
+          "storageKey": null,
+          "args": null,
+          "concreteType": "Location",
+          "plural": false,
+          "selections": [
+            v3,
+            v4,
+            v9,
+            v7
+          ]
+        },
         v6
       ]
     },
@@ -568,8 +583,30 @@ v14 = {
       "concreteType": "RouteStop",
       "plural": false,
       "selections": [
-        v13,
-        v11
+        {
+          "kind": "LinkedField",
+          "alias": null,
+          "name": "airport",
+          "storageKey": null,
+          "args": null,
+          "concreteType": "Location",
+          "plural": false,
+          "selections": [
+            v3,
+            v4,
+            {
+              "kind": "ScalarField",
+              "alias": null,
+              "name": "code",
+              "args": null,
+              "storageKey": null
+            },
+            v7,
+            v9
+          ]
+        },
+        v11,
+        v6
       ]
     },
     v4,
@@ -601,7 +638,7 @@ v14 = {
     }
   ]
 },
-v15 = {
+v14 = {
   "kind": "ScalarField",
   "alias": null,
   "name": "duration",
@@ -613,7 +650,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  ...ExploreCity\n  ...Header\n  ...PassengerMenuGroup\n  ...MissingInformation\n}\n\nfragment ExploreCity on BookingInterface {\n  ...CardContent\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 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  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    departure {\n      ...TimelineDeparture_routeStop\n    }\n    arrival {\n      ...TimelineArrival\n    }\n    ...TimelineDeparture_legInfo\n    id\n  }\n}\n\nfragment TimelineDeparture_routeStop on RouteStop {\n  ...TimelineTitle\n}\n\nfragment TimelineArrival on RouteStop {\n  ...TimelineTitle\n}\n\nfragment TimelineDeparture_legInfo on Leg {\n  flightNumber\n  airline {\n    name\n    logoUrl\n  }\n}\n\nfragment TimelineTitle on RouteStop {\n  localTime\n  airport {\n    locationId\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 Duration on Trip {\n  duration\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\nfragment CardContent on BookingInterface {\n  __typename\n  ...ExploreOneWay\n  ...ExploreReturn\n  ...ExploreMulticity\n}\n\nfragment ExploreOneWay on BookingInterface {\n  ... on BookingOneWay {\n    trip {\n      ...ExploreVariant_trip\n    }\n  }\n}\n\nfragment ExploreReturn on BookingInterface {\n  ... on BookingReturn {\n    outbound {\n      ...ExploreVariant_trip\n      arrival {\n        time\n      }\n    }\n    inbound {\n      ...ExploreVariant_trip\n    }\n  }\n}\n\nfragment ExploreMulticity on BookingInterface {\n  ... on BookingMulticity {\n    trips {\n      arrival {\n        time\n      }\n      departure {\n        time\n      }\n      ...ExploreVariant_trip\n    }\n  }\n}\n\nfragment ExploreVariant_trip on Trip {\n  departure {\n    time\n  }\n  arrival {\n    ...BookingConfirmed_arrival\n  }\n  legs {\n    ...PriorToDeparture\n    departure {\n      ...BookingConfirmed_departure\n      time\n    }\n    id\n  }\n}\n\nfragment BookingConfirmed_arrival on RouteStop {\n  airport {\n    city {\n      name\n    }\n    id\n  }\n}\n\nfragment PriorToDeparture on Leg {\n  recheckRequired\n  departure {\n    localTime\n    gate\n    airport {\n      name\n      id\n    }\n  }\n  arrival {\n    airport {\n      name\n      id\n    }\n  }\n}\n\nfragment BookingConfirmed_departure on RouteStop {\n  time\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  ...ExploreCity\n  ...Header\n  ...PassengerMenuGroup\n  ...MissingInformation\n}\n\nfragment ExploreCity on BookingInterface {\n  ...CardContent\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 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  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    departure {\n      ...TimelineDeparture_routeStop\n    }\n    arrival {\n      ...TimelineArrival\n    }\n    ...TimelineDeparture_legInfo\n    id\n  }\n}\n\nfragment TimelineDeparture_routeStop on RouteStop {\n  ...TimelineTitle\n}\n\nfragment TimelineArrival on RouteStop {\n  ...TimelineTitle\n}\n\nfragment TimelineDeparture_legInfo on Leg {\n  flightNumber\n  airline {\n    name\n    logoUrl\n  }\n}\n\nfragment TimelineTitle on RouteStop {\n  localTime\n  airport {\n    locationId\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 Duration on Trip {\n  duration\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\nfragment CardContent on BookingInterface {\n  __typename\n  ...ExploreOneWay\n  ...ExploreReturn\n  ...ExploreMulticity\n}\n\nfragment ExploreOneWay on BookingInterface {\n  ... on BookingOneWay {\n    trip {\n      ...ExploreVariant_trip\n    }\n  }\n}\n\nfragment ExploreReturn on BookingInterface {\n  ... on BookingReturn {\n    outbound {\n      ...ExploreVariant_trip\n      arrival {\n        time\n      }\n    }\n    inbound {\n      ...ExploreVariant_trip\n    }\n  }\n}\n\nfragment ExploreMulticity on BookingInterface {\n  ... on BookingMulticity {\n    trips {\n      arrival {\n        time\n      }\n      departure {\n        time\n      }\n      ...ExploreVariant_trip\n    }\n  }\n}\n\nfragment ExploreVariant_trip on Trip {\n  departure {\n    time\n  }\n  arrival {\n    ...BookingConfirmed_arrival\n  }\n  legs {\n    ...PriorToDeparture\n    departure {\n      ...BookingConfirmed_departure\n      time\n    }\n    arrival {\n      ...IsFlying\n      time\n    }\n    id\n  }\n}\n\nfragment BookingConfirmed_arrival on RouteStop {\n  airport {\n    city {\n      name\n    }\n    id\n  }\n}\n\nfragment PriorToDeparture on Leg {\n  recheckRequired\n  departure {\n    localTime\n    gate\n    airport {\n      name\n      id\n    }\n  }\n  arrival {\n    airport {\n      name\n      id\n    }\n  }\n}\n\nfragment BookingConfirmed_departure on RouteStop {\n  time\n}\n\nfragment IsFlying on RouteStop {\n  localTime\n  airport {\n    code\n    name\n    city {\n      name\n    }\n    id\n  }\n}\n",
   "metadata": {},
   "fragment": {
     "kind": "Fragment",
@@ -794,8 +831,8 @@ return {
                     ]
                   },
                   v12,
-                  v14,
-                  v15
+                  v13,
+                  v14
                 ]
               }
             ]
@@ -828,8 +865,8 @@ return {
                       v11
                     ]
                   },
-                  v14,
-                  v15
+                  v13,
+                  v14
                 ]
               },
               {
@@ -894,8 +931,8 @@ return {
                       v11
                     ]
                   },
-                  v14,
-                  v15
+                  v13,
+                  v14
                 ]
               }
             ]
@@ -927,8 +964,8 @@ return {
                       v11
                     ]
                   },
-                  v14,
-                  v15
+                  v13,
+                  v14
                 ]
               }
             ]
diff --git a/app/MMB/src/components/exploreCity/exploreVariants/ExploreVariant.js b/app/MMB/src/components/exploreCity/exploreVariants/ExploreVariant.js
index db0a7958..4c5e738c 100644
--- a/app/MMB/src/components/exploreCity/exploreVariants/ExploreVariant.js
+++ b/app/MMB/src/components/exploreCity/exploreVariants/ExploreVariant.js
@@ -7,6 +7,7 @@ import { DateUtils } from '@kiwicom/mobile-localization';
 
 import BookingConfirmed from './BookingConfirmed';
 import PriorToDeparture from './PriorToDeparture';
+import IsFlying from './IsFlying';
 import type { ExploreVariant_trip } from './__generated__/ExploreVariant_trip.graphql';
 
 type Props = {|
@@ -14,6 +15,7 @@ type Props = {|
 |};
 
 export const ExploreVariant = (props: Props) => {
+  const legs = idx(props.trip, _ => _.legs) || [];
   const rawDate = idx(props.trip, _ => _.departure.time);
 
   if (rawDate == null) {
@@ -36,6 +38,21 @@ export const ExploreVariant = (props: Props) => {
   if (hoursToFlight > 0) {
     return <PriorToDeparture data={idx(props.trip, _ => _.legs[0])} />;
   }
+
+  const isFlyingLeg = legs.find(leg => {
+    const legDeparture = new Date(idx(leg, _ => _.departure.time) || 0);
+    const legArrival = new Date(idx(leg, _ => _.arrival.time) || 0);
+
+    return (
+      legDeparture >= DateUtils.getUTCNow() &&
+      legArrival > DateUtils.getUTCNow()
+    );
+  });
+
+  if (isFlyingLeg) {
+    return <IsFlying data={idx(isFlyingLeg, _ => _.arrival)} />;
+  }
+
   return null;
 };
 
@@ -55,6 +72,10 @@ export default createFragmentContainer(
           ...BookingConfirmed_departure
           time
         }
+        arrival {
+          ...IsFlying
+          time
+        }
       }
     }
   `,
diff --git a/app/MMB/src/components/exploreCity/exploreVariants/IsFlying.js b/app/MMB/src/components/exploreCity/exploreVariants/IsFlying.js
new file mode 100644
index 00000000..08d1aae1
--- /dev/null
+++ b/app/MMB/src/components/exploreCity/exploreVariants/IsFlying.js
@@ -0,0 +1,61 @@
+// @flow strict
+
+import * as React from 'react';
+import { Translation, DateFormatter } from '@kiwicom/mobile-localization';
+import { graphql, createFragmentContainer } from '@kiwicom/mobile-relay';
+import idx from 'idx';
+
+import type { IsFlying as RouteStop } from './__generated__/IsFlying.graphql';
+import ExploreText from '../ExploreText';
+import ExploreButton from '../ExploreButton';
+
+type Props = {|
+  +data: RouteStop,
+|};
+
+const IsFlying = (props: Props) => {
+  const destination = idx(props.data, _ => _.airport.city.name);
+  const code = idx(props.data, _ => _.airport.code);
+  const time = idx(props.data, _ => _.localTime);
+
+  if (time == null || code == null || destination == null) {
+    return null;
+  }
+
+  return (
+    <React.Fragment>
+      <ExploreText
+        title={
+          <Translation id="mmb.main_menu.explore_city.is_flying.enjoy_flight" />
+        }
+        text={
+          <Translation
+            id="mmb.main_menu.explore_city.is_flying.heading_to"
+            values={{
+              destination,
+              code,
+              time: DateFormatter(new Date(time)).formatToTime(),
+            }}
+          />
+        }
+      />
+      <ExploreButton airportName={idx(props.data, _ => _.airport.name) || ''} />
+    </React.Fragment>
+  );
+};
+
+export default createFragmentContainer(
+  IsFlying,
+  graphql`
+    fragment IsFlying on RouteStop {
+      localTime
+      airport {
+        code
+        name
+        city {
+          name
+        }
+      }
+    }
+  `,
+);
diff --git a/app/MMB/src/components/exploreCity/exploreVariants/__generated__/ExploreVariant_trip.graphql.js b/app/MMB/src/components/exploreCity/exploreVariants/__generated__/ExploreVariant_trip.graphql.js
index e64e6132..5a98814d 100644
--- a/app/MMB/src/components/exploreCity/exploreVariants/__generated__/ExploreVariant_trip.graphql.js
+++ b/app/MMB/src/components/exploreCity/exploreVariants/__generated__/ExploreVariant_trip.graphql.js
@@ -10,6 +10,7 @@
 import type { ConcreteFragment } from 'relay-runtime';
 type BookingConfirmed_arrival$ref = any;
 type BookingConfirmed_departure$ref = any;
+type IsFlying$ref = any;
 type PriorToDeparture$ref = any;
 import type { FragmentReference } from "relay-runtime";
 declare export opaque type ExploreVariant_trip$ref: FragmentReference;
@@ -25,6 +26,10 @@ export type ExploreVariant_trip = {|
       +time: ?any,
       +$fragmentRefs: BookingConfirmed_departure$ref,
     |},
+    +arrival: ?{|
+      +time: ?any,
+      +$fragmentRefs: IsFlying$ref,
+    |},
     +$fragmentRefs: PriorToDeparture$ref,
   |}>,
   +$refType: ExploreVariant_trip$ref,
@@ -105,6 +110,23 @@ return {
             },
             v0
           ]
+        },
+        {
+          "kind": "LinkedField",
+          "alias": null,
+          "name": "arrival",
+          "storageKey": null,
+          "args": null,
+          "concreteType": "RouteStop",
+          "plural": false,
+          "selections": [
+            {
+              "kind": "FragmentSpread",
+              "name": "IsFlying",
+              "args": null
+            },
+            v0
+          ]
         }
       ]
     }
@@ -112,5 +134,5 @@ return {
 };
 })();
 // prettier-ignore
-(node/*: any*/).hash = 'dba69b27f6d7e66ade69c5a54f33b615';
+(node/*: any*/).hash = '60b842cd9ffcf4cd59d26ac69b40132f';
 module.exports = node;
diff --git a/app/MMB/src/components/exploreCity/exploreVariants/__generated__/IsFlying.graphql.js b/app/MMB/src/components/exploreCity/exploreVariants/__generated__/IsFlying.graphql.js
new file mode 100644
index 00000000..9c311738
--- /dev/null
+++ b/app/MMB/src/components/exploreCity/exploreVariants/__generated__/IsFlying.graphql.js
@@ -0,0 +1,85 @@
+/**
+ * @flow
+ */
+
+/* eslint-disable */
+
+'use strict';
+
+/*::
+import type { ConcreteFragment } from 'relay-runtime';
+import type { FragmentReference } from "relay-runtime";
+declare export opaque type IsFlying$ref: FragmentReference;
+export type IsFlying = {|
+  +localTime: ?any,
+  +airport: ?{|
+    +code: ?string,
+    +name: ?string,
+    +city: ?{|
+      +name: ?string
+    |},
+  |},
+  +$refType: IsFlying$ref,
+|};
+*/
+
+
+const node/*: ConcreteFragment*/ = (function(){
+var v0 = {
+  "kind": "ScalarField",
+  "alias": null,
+  "name": "name",
+  "args": null,
+  "storageKey": null
+};
+return {
+  "kind": "Fragment",
+  "name": "IsFlying",
+  "type": "RouteStop",
+  "metadata": null,
+  "argumentDefinitions": [],
+  "selections": [
+    {
+      "kind": "ScalarField",
+      "alias": null,
+      "name": "localTime",
+      "args": null,
+      "storageKey": null
+    },
+    {
+      "kind": "LinkedField",
+      "alias": null,
+      "name": "airport",
+      "storageKey": null,
+      "args": null,
+      "concreteType": "Location",
+      "plural": false,
+      "selections": [
+        {
+          "kind": "ScalarField",
+          "alias": null,
+          "name": "code",
+          "args": null,
+          "storageKey": null
+        },
+        v0,
+        {
+          "kind": "LinkedField",
+          "alias": null,
+          "name": "city",
+          "storageKey": null,
+          "args": null,
+          "concreteType": "LocationArea",
+          "plural": false,
+          "selections": [
+            v0
+          ]
+        }
+      ]
+    }
+  ]
+};
+})();
+// prettier-ignore
+(node/*: any*/).hash = 'ac5883987906f93816cff1e91dfac647';
+module.exports = node;
diff --git a/packages/localization/src/vocabularies/ManageMyBooking.js b/packages/localization/src/vocabularies/ManageMyBooking.js
index ab3f1d2b..61137839 100644
--- a/packages/localization/src/vocabularies/ManageMyBooking.js
+++ b/packages/localization/src/vocabularies/ManageMyBooking.js
@@ -270,6 +270,9 @@ export default {
     "Don't forget to recheck your bags.",
   'mmb.main_menu.explore_city.prior_to_departure.recheck_your_bags_and_go_to_gate':
     "Don't forget to recheck your bags, then go to gate __gate__.",
+  'mmb.main_menu.explore_city.is_flying.enjoy_flight': 'Enjoy your flight',
+  'mmb.main_menu.explore_city.is_flying.heading_to':
+    "You're heading to __1_destination__. Expected arrival at __2_code__ airport is __3_time__ local time.",
 
   'mmb.main_menu.manage': 'Manage',
   'mmb.main_menu.manage.help': 'Help',


Test patch:
diff --git a/app/MMB/src/components/exploreCity/exploreVariants/__tests__/ExploreVariant.test.js b/app/MMB/src/components/exploreCity/exploreVariants/__tests__/ExploreVariant.test.js
index 6024763d..20d70b07 100644
--- a/app/MMB/src/components/exploreCity/exploreVariants/__tests__/ExploreVariant.test.js
+++ b/app/MMB/src/components/exploreCity/exploreVariants/__tests__/ExploreVariant.test.js
@@ -47,14 +47,25 @@ describe('ExploreVariant', () => {
     expect(wrapper.type.displayName).toEqual('Relay(PriorToDeparture)');
   });
 
-  it('should render null if it is 0 hours to departure', () => {
+  it('should render IsFlying if it is after departure and before arrival', () => {
     DateUtils.getUTCNow = jest.fn(() => new Date(2018, 11, 24, 18, 0, 0, 0));
     const data = {
       departure: {
         time: new Date(2018, 11, 24, 18, 0, 0, 0),
       },
+      legs: [
+        {
+          departure: {
+            time: new Date(2018, 11, 24, 18, 0, 0, 0),
+          },
+          arrival: {
+            time: new Date(2018, 11, 24, 20, 0, 0, 0),
+          },
+        },
+      ],
     };
     const wrapper = getWrapper(data);
-    expect(wrapper).toBe(null);
+
+    expect(wrapper.type.displayName).toEqual('Relay(IsFlying)');
   });
 });