'use client'; import React, { useEffect, useState } from 'react'; import clsx from 'clsx'; import { Price, LoaderSpinner } from '@theme/components'; import { Image } from '@akinon/next/components/image'; export type InstallmentProps = { productPk: number; }; import { useGetInstallmentsQuery } from '@akinon/next/data/client/product'; import { useLocalization } from '@akinon/next/hooks'; const InstallmentOptions = (props: InstallmentProps) => { const { t } = useLocalization(); const { productPk } = props; const { data, isLoading, isSuccess } = useGetInstallmentsQuery(productPk); const [activeCardSlug, setActiveCardSlug] = useState(null); useEffect(() => { if (isSuccess && data) { setActiveCardSlug(data.results?.[0]?.slug); } }, [isSuccess, data]); return ( <> {isLoading ? ( ) : ( isSuccess && ( <> {data && data.results.length === 0 && ( {t('product.installment_not_available')} )}
{data.results.map((card) => (
setActiveCardSlug(card.slug)} className={clsx( 'border border-gray-200 p-1 flex justify-center items-center transition-all cursor-pointer', activeCardSlug === card.slug ? 'bg-gray-50 border-gray-400' : 'bg-white' )} > {/* TODO: There is no image. It should be checked. May need fix. */} {card.name}
))}
{data.results.map((value) => { if (activeCardSlug === value.slug) return value.installments.map((installment, index) => { return ( ); }); })}
{t('product.number_of_installments')} {t('product.monthly_amount')} {t('product.total_amount')}
{installment.installment_count === 1 ? '' : installment.installment_count}{' '} {installment.installment_count === 1 ? t('product.cash') : t('product.installment')}
) )} ); }; export default InstallmentOptions;