'use client'; import React, { useEffect, useState } from 'react'; import { useGetBasketQuery, useGetAllBasketsQuery, useLazyGetBasketDetailQuery, useRemoveBasketMutation, useSelectMainBasketMutation } from '@akinon/next/data/client/basket'; import { Button, Icon, Price } from '@akinon/next/components'; import { useLocalization } from '@akinon/next/hooks'; import clsx from 'clsx'; interface Props { BasketItem?: React.JSXElementConstructor; } export const MultiBasket = (props: Props) => { const { t } = useLocalization(); const { data: basketData } = useGetBasketQuery(); const { data: allBaskets, isSuccess: isAllBasketsSuccess } = useGetAllBasketsQuery(); const [getBasketDetail] = useLazyGetBasketDetailQuery(); const { BasketItem } = props; const [removeBasket] = useRemoveBasketMutation(); const [selectMainBasket] = useSelectMainBasketMutation(); const [detailedBaskets, setDetailedBaskets] = useState([]); useEffect(() => { const fetchAllBasketDetails = async () => { if (!allBaskets) return; if (allBaskets) { const basketDetails = []; for (const basket of allBaskets) { try { const detail = await getBasketDetail({ namespace: basket.namespace }).unwrap(); basketDetails.push(detail); } catch (error) { console.error('Error fetching basket details:', error); } } setDetailedBaskets(basketDetails); } }; fetchAllBasketDetails(); }, [allBaskets, getBasketDetail]); return ( <> {detailedBaskets.length > 0 && ( <> {detailedBaskets.map((basket) => (
{basket?.basketitem_set?.length > 0 && (
{basket.namespace &&

{basket.namespace}

}
    {basket.basketitem_set.map((basketItem, index) => ( ))}
{t('basket.total')}
)}
))} )} ); }; export default MultiBasket;