'use client';
import { useMemo, useState } from 'react';
import { useGetContractQuery } from '@akinon/next/data/client/checkout';
import { LoaderSpinner, Modal } from '@theme/components';
const useContract = (slug: string, label: string) => {
const [isModalOpen, setIsModalOpen] = useState(false);
const { data } = useGetContractQuery(slug, { skip: !isModalOpen });
const ContractButton = useMemo(() => {
const View = () => (
{
event.preventDefault();
setIsModalOpen(true);
}}
>
{label}
);
return View;
}, [label]);
const ContractModal = useMemo(() => {
const View = () => (
{
setIsModalOpen(state);
}}
className="w-full max-w-lg"
>
);
return View;
}, [data, slug, isModalOpen]);
return {
ContractButton,
ContractModal
};
};
export default useContract;