"use client"; import {useConfig} from "@/utils/hooks/useConfig"; import { useCustomToast } from "@/utils/hooks/useToast"; import {useSaveCheckoutCart} from "@/utils/hooks/useSaveCheckoutCart"; import { formatCartDetail } from "@/utils/cartDetailTools"; import { overlayLoading } from "@/components/theme/ui/kernel/loading/api"; import {CartDetail} from "@/types/cart/type"; /** * 先通过 shippingInsuranceEnabled 判断网站是否开通丢件险功能 * 再通过 useShippingInsurance 判断用户是否勾选丢件险 */ export default function LostInsurance({ cartData, onSwitchInsurance }: { cartData: CartDetail onSwitchInsurance: (payload:CartDetail) => void; }) { const {getCurrentCurrencyItem} = useConfig(); const currentCurrency = getCurrentCurrencyItem(); const currencySymbol = currentCurrency.symbol; const { showToast } = useCustomToast(); const {saveCheckoutCart} = useSaveCheckoutCart(); const clickSwitchButton = async (bool: boolean) => { let isInsurance = bool ? '1' : ''; await setInsurance(isInsurance); }; const setInsurance = async (insurance: string) => { overlayLoading.start(); const saveRes = await saveCheckoutCart({ useShippingInsurance: insurance }); overlayLoading.stop(); if(!saveRes.error) { if(saveRes.data) { const newCartDetail = formatCartDetail(saveRes.data); onSwitchInsurance(newCartDetail); } return true; } else { showToast(saveRes.msg, 'danger'); return false; } }; let title = ""; if(cartData.shippingInsuranceType === "percentage") { title = `${cartData.shippingInsuranceValue}% Package Insurance`; } else if(cartData.shippingInsuranceType === "fixed") { //title = `${currencySymbol}${cartData.shippingInsuranceAmount} Package Insurance`; title = `Fixed $${cartData.shippingInsuranceValue} Package Insurance`; } return (<>
{title} {cartData.formattedShippingInsuranceAmount}
Increased compensation for courier packages issued within 30 days.
); }