/* 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;