/* eslint-disable react-hooks/exhaustive-deps */ "use client"; import React, { useEffect } from "react"; import CoreSummarySkeleton from "@/features/core/summary/components/core-summary-skeleton"; import { getGroupPassengers } from "@/features/core/summary/libs/group-passenger-helper"; import { useLabels } from "@/hooks/useLabels"; import { ILoaderKeys } from "@/models/loader.model"; import { useTourAddToCartMutation } from "@/services/eva-display/tour/tour-add-to-cart/tour-add-to-cart.services"; import { useLoaderStore } from "@/store/loader-store/use-loader-store"; import { useTourTravelPlanner } from "../../travel-planner/hooks/use-tour-travel-planner"; import { useTourSummary } from "../hooks/use-tour-summary"; import TourSummaryView from "./tour-summary-view"; const TourSummary = () => { const { data: tpData, isReady: tpIsReady } = useTourTravelPlanner(); const { data: summaryData, isReady: summaryIsReady } = useTourSummary(); const tourAddToCartMutation = useTourAddToCartMutation(); const { removeLoader } = useLoaderStore(); const labels = useLabels(); useEffect(() => { if (summaryIsReady && tpIsReady) { tourAddToCartMutation.mutate({ TourCartProductRequest: { productKey: summaryData.payload.option.key!, searchId: summaryData?.payload.searchId!, }, }); } setTimeout(() => { removeLoader(ILoaderKeys.SummaryLoaderKey); }, 250); }, [summaryIsReady, tpIsReady]); const isLoading = !tourAddToCartMutation.isSuccess || !tpIsReady || !summaryIsReady; if (isLoading || !tpData) { return ; } const tourAddToCartData = tourAddToCartMutation.data; function getPassengerGroups() { const passengers = getGroupPassengers( { passengerKeys: summaryData.payload.passengersKeys!, 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 TourSummary;