import { storageManager } from "@/libs/storage-manager"; import { usePaymentStore } from "@/store/payment-store/use-payment-store"; import type { IPaymentPayload } from "../types/payment.types"; export const usePayment = () => { const { setModuleData, paymentState } = usePaymentStore(); const setBookingData = ( payload: Pick< IPaymentPayload, | "cartId" | "searchId" | "transactionId" | "preSaleAgreementText" | "saleAgreementText" >, ) => { storageManager.set("core-payment", { moduleName: "Core", payload: { ...payload, paymentStatus: "payment" }, }); setModuleData({ moduleName: "Core", payload: { ...payload, paymentStatus: "payment" }, }); }; const setPaymentState = (paymentStatus: string) => { storageManager.set("core-payment", { moduleName: "Core", payload: { ...paymentState, paymentStatus }, }); setModuleData({ moduleName: "Core", payload: { ...paymentState, paymentStatus }, }); }; function clearPaymentState() { setModuleData({ moduleName: "Core", payload: { paymentStatus: "idle", }, }); storageManager.delete("core-payment"); } return { setPaymentState, setBookingData, clearPaymentState, isReady: paymentState.status === "done", paymentState: paymentState.data as { moduleName: "Core"; payload: IPaymentPayload; }, }; };