/* eslint-disable react-hooks/exhaustive-deps */
"use client";
import React, { useEffect } from "react";
import Container from "@/components/shared/container";
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 { storageManager } from "@/libs/storage-manager";
import { ILoaderKeys } from "@/models/loader.model";
import { useTransferAddToCartMutation } from "@/services/eva-display/transfer/transfer-cart/transfer-add-to-cart.service";
import { useLoaderStore } from "@/store/loader-store/use-loader-store";
import { usePayment } from "../../payment/hooks/use-transfer-payment";
import { useTransferTravelPlanner } from "../../travel-planner/hooks/use-transfer-travel-planner";
import { useTransferSummary } from "../hooks/use-transfer-summary";
import TransferSummaryView from "./transfer-summary-view";
export default function TransferSummary() {
const tp = useTransferTravelPlanner();
const summary = useTransferSummary();
const { removeLoader } = useLoaderStore();
const addToCartMutation = useTransferAddToCartMutation();
const labels = useLabels();
const { resetPaymentStore } = usePayment();
useEffect(() => {
if (tp.isReady && summary.isReady) {
storageManager.delete("core-payment");
resetPaymentStore();
addToCartMutation.mutate({
TransferCartProductRequest: {
ProductKeys: summary.data.payload.detailKey!,
SearchId: summary.data.payload.searchId!,
},
});
}
setTimeout(() => {
removeLoader(ILoaderKeys.HotelDetailLoaderKey);
}, 250);
}, [tp.isReady, summary.isReady]);
if (!tp.isReady || !summary.isReady || !addToCartMutation.data || !tp?.data)
return ;
if (
addToCartMutation.data.errors &&
addToCartMutation.data.errors.length > 0
) {
return (
Bir hata oluştu!
);
}
function getPassengerGroups() {
const passengers = getGroupPassengers(
{
passengerGroups: [
{
employee: {
count: tp.data?.payload?.passengers?.employee?.count ?? 0,
},
guest: {
count: tp.data?.payload?.passengers?.guest?.count ?? 0,
},
child: {
count: tp.data?.payload?.passengers?.child?.count ?? 0,
},
},
],
passengerKeys: summary.data.payload.passengersKeys!,
employees: tp.data.payload.employees ?? [],
},
labels,
);
return passengers;
}
const passengers = getPassengerGroups();
return (
);
}