/* eslint-disable no-unsafe-optional-chaining */
import dayjs from "dayjs";
import { Button } from "@/components/ui/button/button";
import Card from "@/components/ui/card/card";
import LIcon from "@/components/ui/lucid-icon/lucid-icon";
import Spinner from "@/components/ui/spinner";
import FlightListItemContent from "@/features/flight/components/flight-list/components/flight-list-item/components/flight-list-item-content";
import { getCityName } from "@/libs/helpers/flight-helper";
import { PriceManager } from "@/libs/price-manager/price-manager";
import type { IFlightBookingRequest } from "@/models/booking-request.model";
import { useFlightDetailQuery } from "@/services/eva-display/flight/flight-detail/flight-detail.service";
import BRFCCartData from "./brfc-cart-data";
interface BRFCDetailDataProps {
flightBookingRequest: IFlightBookingRequest;
productKey: string;
searchId: string;
pricingCombinationKeys: string[];
}
const BRFCDetailData = (props: BRFCDetailDataProps) => {
const flightDetailQuery = useFlightDetailQuery({
FlightDetailRequest:
props.pricingCombinationKeys.length > 1
? {
ProductKey: "",
searchId: props.searchId,
CombinationGroupKeys: props.pricingCombinationKeys,
}
: {
ProductKey: props.productKey,
searchId: props.searchId,
},
});
if (!flightDetailQuery.data && flightDetailQuery.isLoading) {
return (
);
}
const errros = (flightDetailQuery as any)?.errors?.[0]?.message;
if (!flightDetailQuery.data || !!errros) {
return (
{!errros &&
{errros}
}
Uçuş detayları çekilirken bir hata oluştu. Lütfen tekrar deneyiniz.
);
}
const { pricingCombinations } = flightDetailQuery.data;
const isGroupedFlight =
(pricingCombinations[0]?.combinationGroups || [])?.length > 1;
const isRoundTrip = pricingCombinations.length > 1 || isGroupedFlight;
const departureFlight = !isGroupedFlight
? pricingCombinations
.find((x) => x.combinationGroups.find((y) => y.groupId === 0))
?.combinationGroups.find((x) => x.groupId === 0)
: pricingCombinations[0]?.combinationGroups.find((x) => x.groupId === 0);
const returnFlight = !isGroupedFlight
? pricingCombinations
.find((x) => x.combinationGroups.find((y) => y.groupId === 1))
?.combinationGroups.find((x) => x.groupId === 1)
: pricingCombinations[0]?.combinationGroups.find((x) => x.groupId === 1);
return (
Uçuş Bilgileri
{`${getCityName(
departureFlight?.flightSegments[0]?.origin,
)} - ${getCityName(
departureFlight?.flightSegments[0]?.destination,
)}`}
{dayjs(departureFlight?.flightSegments[0]?.departureTime).format(
"DD MMMM YYYY ddd",
)}
}
price={PriceManager({
currency: departureFlight?.totalPrice.slice(0, 3) || "TRY",
value:
+departureFlight!.totalPrice?.slice(3) /
props.flightBookingRequest.passengerInformations?.length!,
})}
/>
{isRoundTrip && returnFlight && (
<>
{`${getCityName(
returnFlight?.flightSegments[0]?.origin,
)} - ${getCityName(
returnFlight?.flightSegments[0]?.destination,
)}`}
{dayjs(returnFlight?.flightSegments[0]?.departureTime).format(
"DD MMMM YYYY ddd",
)}
}
price={PriceManager({
currency: returnFlight?.totalPrice.slice(0, 3) || "TRY",
value:
+returnFlight!.totalPrice?.slice(3) /
props.flightBookingRequest.passengerInformations?.length!,
})}
/>
>
)}
pricingCombination.key,
)}
searchId={props.searchId}
/>
);
};
export default BRFCDetailData;