const FlightTimes = (props: Props) => ( <View style={styles.container}> <LocalTime data={props.data?.departure} style={styles.text} /> {Platform.OS === 'web' && <Text style={styles.text}> - </Text>} <LocalTime data={props.data?.arrival} style={styles.text} /> </View> )
function checkFlightData(data) { data.duration.should.be.above(0); data.stops.should.be.aboveOrEqual(0); data.flightClass.should.be.aboveOrEqual(0); data.airline.should.be.an.Array(); data.airline.length.should.be.aboveOrEqual(1); data.price.amount.should.be.aboveOrEqual(1); data.price.currency.should.not.be.null().and.be.a.String(); checkFlightTimeFields(data.departure.time); data.departure.airport.should.not.be.null().and.be.a.String(); checkFlightTimeFields(data.arrival.time); data.arrival.airport.should.not.be.null().and.be.a.String(); }
filterArrivalsByDeparture(deals, departure){ let arrivals = deals.filter((item, i) => { return item.departure == departure }).map((item, i) => { return item.arrival }) return arrivals.filter((item, i) => { return arrivals.indexOf(item) == i }) }
const sanitizeOneWay = (booking: BookingApiResult) => { const arrival = sanitizeRouteStop(last(booking.flights)?.arrival); const departure = sanitizeRouteStop(head(booking.flights)?.departure); return { arrival, departure, segments: booking.flights.map(sanitizeFlight), duration: getDuration(departure, arrival), }; }
submit(e){ e.preventDefault() this.props.onSubmit({ departure: this.refs.form.departure.value, arrival: this.refs.form.arrival.value, sort: this.refs.form.sort.value }) }
const Results = function (props) { const resultsData = props.searchRes.map(function (item) { return <div className='flight-section-box'> <div> <h2>{item.fare}</h2> <p className='ai-number'>{item.aiNumber}</p> <p>{item.srcCityCode + ' > ' + item.destCityCode}</p> <p>Depart: {item.depart}</p> <p>Arrive: {item.arrival}</p> </div> </div> }) return <div>{resultsData}</div> }
const sanitizeFlight = (flight: ApiFlight): Segment => { return { id: flight.id, departure: sanitizeRouteStop(flight.departure), arrival: sanitizeRouteStop(flight.arrival), duration: null, // @TODO - calculate duration carrier: sanitizeCarrier(flight.airline), vehicle: null, // @TODO - map values }; }
const sanitizeSector = (segments: Array<Segment>): Sector => { const departure = head(segments)?.departure; const arrival = last(segments)?.arrival; return { duration: differenceInMinutes( fromISO(departure?.time?.utc), fromISO(arrival?.time?.utc), ), segments, stopoverDuration: 0, departure, arrival, }; }
const SectorHeader = (props: Props) => { const locationName = props.data?.arrival?.stop?.city?.name; return ( <View style={styles.container}> <Text weight="bold" style={styles.location}> {locationName ? `To ${locationName}` : ''} </Text> <Duration weight="bold" showIcon={false} style={styles.duration} duration={props.data?.duration} /> </View> ); }
const SectorDates = (props: Props) => { return ( <> <View style={styles.row}> <SectorDate data={props.data?.departure} type="date" /> <SectorDate data={props.data?.arrival} type="date" /> </View> <View style={styles.row}> <SectorDate data={props.data?.departure} type="time" /> <Duration duration={props.data?.duration} /> <SectorDate data={props.data?.arrival} type="time" /> </View> </> ); }
const TripCities = (props: Props) => ( <View style={styles.container}> <LocationName data={props.data?.departure} style={styles.text} /> {Platform.OS === 'web' && ( <Icon name="route-no-stops" color={defaultTokens.colorIconTertiary} size="large" /> )} <LocationName data={props.data?.arrival} style={styles.text} /> </View> )
const FlightTimes = (props: Props) => ( <View style={styles.container}> <LocalTime data={props.data?.departure} style={styles.text} /> {Platform.OS === 'web' && <Text style={styles.text}> - </Text>} <LocalTime data={props.data?.arrival} style={styles.text} /> </View> )
const TripCities = (props: Props) => ( <View style={styles.container}> <LocationName data={props.data?.departure} style={styles.text} /> {Platform.OS === 'web' && ( <Icon name="route-no-stops" color={defaultTokens.colorIconTertiary} size="large" /> )} <LocationName data={props.data?.arrival} style={styles.text} /> </View> )