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