/* eslint-disable import/no-named-as-default */ /* eslint-disable no-unsafe-optional-chaining */ /* eslint-disable react-hooks/exhaustive-deps */ "use client"; import { useEffect } from "react"; import CoreSummarySkeleton from "@/features/core/summary/components/core-summary-skeleton"; import { CoreSummaryCtxProvider } from "@/features/core/summary/context/core-summary-context"; import { getGroupPassengers } from "@/features/core/summary/libs/group-passenger-helper"; import { useLabels } from "@/hooks/useLabels"; import { useHotelAddToCartMutation } from "@/services/eva-display/hotel/hotel-add-to-cart/hotel-add-to-cart.services"; import { useHotelTravelPlanner } from "../../travel-planner/hooks/use-hotel-travel-planner"; import { SummaryCtxProvider } from "../context/summary-context"; import { useHotelSummary } from "../hooks/use-hotel-summary"; import HotelSummaryView from "./hotel-summary-view"; const HotelSummary = () => { const { data: tpData, isReady: tpIsReady } = useHotelTravelPlanner(); const { data: summaryData, isReady: summaryIsReady } = useHotelSummary(); const labels = useLabels(); const hotelAddToCartMutation = useHotelAddToCartMutation(); useEffect(() => { if (summaryIsReady && tpIsReady) { window.scrollTo({ top: 0, behavior: "smooth", }); hotelAddToCartMutation.mutate({ HotelCartProductRequest: { ProductKey: summaryData.payload.roomGroupKey!, SearchId: summaryData?.payload.searchId!, }, }); } }, [summaryIsReady, tpIsReady]); const isLoading = !hotelAddToCartMutation.isSuccess || !tpIsReady || !summaryIsReady; if (isLoading || !tpData) { return ; } const hotelAddToCartData = hotelAddToCartMutation.data; function getPassengerGroups() { const passengers = getGroupPassengers( { passengerKeys: summaryData.payload.passengersKeys!, employees: tpData.payload.employees ?? [], passengerGroups: tpData.payload.rooms?.map((room) => ({ employee: { count: room.employee?.count ?? 0, }, child: { count: room.child?.count ?? 0, }, guest: { count: room.guest?.count ?? 0, }, })) ?? [], }, labels, ); return passengers; } const passengers = getPassengerGroups(); return ( ); }; export default HotelSummary;