/* eslint-disable jsx-a11y/no-static-element-interactions */ /* eslint-disable jsx-a11y/click-events-have-key-events */ import dayjs from "dayjs"; import Link from "next/link"; import { useRouter } from "next/navigation"; import React from "react"; import { DropdownMenu, DropdownMenuContent, DropdownMenuItem, DropdownMenuTrigger, } from "@/components/ui/dropdown-menu/dropdown-menu"; import LIcon from "@/components/ui/lucid-icon/lucid-icon"; import { StatusText } from "@/components/ui/status-text/status-text"; import FlightMultipleWayCard from "@/components/widget/request-card/flight-request-card/flight-multiple-way-card"; import styles from "@/components/widget/request-card/flight-request-card/flight-request-card.module.css"; import { useBreakpoints } from "@/hooks/useBreakpoints"; import { DateHelper } from "@/libs/helpers/date-time-helper"; import { PriceManager } from "@/libs/price-manager/price-manager"; import { cn } from "@/libs/utils"; import type { IBookingRequestItem } from "@/services/eva-display/demand/demand-service.types"; import { statusEnumTypes } from "@/services/eva-display/demand/demand-service.types"; import type { IFlightBookedProduct } from "@/services/eva-display/demand/flight-booked-product/flight-booked-product"; import type { IPlaneReservationData } from "@/services/eva-display/demand/flight-reservation-data/flight-reservation-data"; import type { IPassengerInformation } from "@/services/eva-display/demand/passenger-information/passenger-information"; export interface IFlightRequestCardProps { bookedProduct: IFlightBookedProduct; reservationData: IPlaneReservationData; passengerInformations: IPassengerInformation; item: IBookingRequestItem; className?: string; } function Undefined() { return bulunamadı; } const FlightRequestCard = ({ item, bookedProduct, passengerInformations, reservationData, className, }: IFlightRequestCardProps) => { const status = item?.requestStatus as number; const { isDesktop } = useBreakpoints(); const router = useRouter(); const pricingCombinations = reservationData?.DetailResponse?.PricingCombinations; const combinationGroups = pricingCombinations[0] && pricingCombinations[0].CombinationGroups; const segments = combinationGroups && combinationGroups[0] && combinationGroups[0].FlightSegments; const originSegment = segments && segments[0]; const arrivalSegment = segments && segments[segments.length - 1]; if (!originSegment || !arrivalSegment) { return null; } const destination = arrivalSegment.Destination.split(" ")[0]!.replace( ",", "", ); const mainCurrency = reservationData!.DetailResponse!.PricingCombinations[0]!.TotalPrice.slice( 0, 3, ); const totalledPrice = reservationData.DetailResponse.PricingCombinations.length > 1 ? reservationData.DetailResponse.PricingCombinations.reduce( (acc, curr) => acc + +curr.TotalPrice.slice(3), 0, ) : +reservationData.DetailResponse.PricingCombinations[0]!.TotalPrice.slice( 3, ); const totalPrice = PriceManager({ currency: mainCurrency, value: totalledPrice, }); const tripLength = combinationGroups && combinationGroups.length; const requestDetailPath = `/flight-request-detail?id=${item?.id}`; const handleClickCard = () => { if (!isDesktop) { window.scrollTo(0, 0); router.push(requestDetailPath); } }; return (
Onay Durumu
Opsiyon Süresi
{bookedProduct.BookingInformation.RoundString}
{bookedProduct.BookingInformation.RoundDepartureTime}
{bookedProduct.BookingInformation.TripString}
{DateHelper.dayjs( combinationGroups.find((x) => x.GroupId === 1) ?.FlightSegments[0]?.DepartureTime as unknown as Date, ).format("DD MMM YYYY dddd")}
Toplam Tutar
{totalPrice}
Kişiler
{passengerInformations ? Object.values(passengerInformations) .map((passanger) => { return `${passanger?.Name} ${passanger?.Surname}`; }) .join(", ") : Undefined()}