@kiwicom/smart-faq
Version:
57 lines (50 loc) • 1.47 kB
JavaScript
// @flow
import * as React from 'react';
import { graphql, createFragmentContainer } from 'react-relay';
import BoardingPassesItem from './BoardingPassesItem';
import type { BoardingPassesList_boardingPassesInfo as BoardingPassesSummaryProps } from './__generated__/BoardingPassesList_boardingPassesInfo.graphql';
type Props = {|
boardingPassesInfo: BoardingPassesSummaryProps,
|};
const sortByASCDepartureTime = (a, b) =>
new Date(a?.leg?.departure?.time ?? '') -
new Date(b?.leg?.departure?.time ?? ''); // TODO sort boarding passes on GraphQL
const BoardingPassesList = ({ boardingPassesInfo }: Props) => {
const { assets, directAccessURL } = boardingPassesInfo;
const boardingPasses = assets?.boardingPasses;
return (
boardingPasses &&
boardingPasses
.slice()
.sort(sortByASCDepartureTime)
.map(
boardingPass =>
boardingPass && (
<BoardingPassesItem
key={boardingPass.flightNumber}
data={boardingPass}
mmbUrl={directAccessURL}
/>
),
)
);
};
export default createFragmentContainer(
BoardingPassesList,
graphql`
fragment BoardingPassesList_boardingPassesInfo on BookingInterface {
directAccessURL
assets {
boardingPasses {
flightNumber
leg {
departure {
time
}
}
...BoardingPassesItem
}
}
}
`,
);