/* 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 (
{/* todo : islevsiz oldugu icin simdilik gizlendi {statusEnumTypes[status] === "warning" && ( <> Onayla Reddet Değiştir )} */} {/* {statusEnumTypes[status] === "warning" && ( Değiştir )} */} İncele

{`${destination}${ item?.travelReasonName ? ` ${item?.travelReasonName}` : "" } Seyahati`}

Onay Durumu

{statusEnumTypes[status] === "denied" || (statusEnumTypes[status] !== "error" && item.bookedProduct && (item.bookedProduct as any).OptionDate && dayjs( (item.bookedProduct as any)?.OptionDate, ).isValid() && (

Opsiyon Süresi

{`${DateHelper.dayjs( (item.bookedProduct as any)?.OptionDate, ).format("DD.MM.YYYY HH:mm")}'e kadar`}
))}

{bookedProduct.BookingInformation.RoundString}

{bookedProduct.BookingInformation.RoundDepartureTime}

{tripLength === 2 && (

{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}

{/* className="col-span-3" */}

Kişiler

{passengerInformations ? Object.values(passengerInformations) .map((passanger) => { return `${passanger?.Name} ${passanger?.Surname}`; }) .join(", ") : Undefined()}
{/* */}
); }; export default FlightRequestCard;