'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" >
{data ? (
) : (
)}
); return View; }, [data, slug, isModalOpen]); return { ContractButton, ContractModal }; }; export default useContract;