enzostvs's picture
enzostvs HF Staff
add pro subs if limit has been reached
c9c8965
import classNames from "classnames";
import { useLocalStorage } from "react-use";
import { defaultHTML } from "../../../utils/consts";
function ProModal({
open,
html,
onClose,
}: {
open: boolean;
html: string;
onClose: React.Dispatch<React.SetStateAction<boolean>>;
}) {
const [, setStorage] = useLocalStorage("html_content");
const handleProClick = () => {
if (html !== defaultHTML) {
setStorage(html);
}
};
return (
<>
<div
className={classNames(
"h-screen w-screen bg-black/20 fixed left-0 top-0 z-40",
{
"opacity-0 pointer-events-none": !open,
}
)}
onClick={() => onClose(false)}
></div>
<div
className={classNames(
"absolute top-0 -translate-y-[calc(100%+16px)] right-0 z-40 w-96 bg-white border border-gray-200 rounded-lg shadow-lg transition-all duration-75 overflow-hidden",
{
"opacity-0 pointer-events-none": !open,
}
)}
>
<header className="flex items-center text-sm px-4 py-2 border-b border-gray-200 gap-2 bg-gray-100 font-semibold text-gray-700">
<span className="bg-linear-to-br shadow-green-500/10 dark:shadow-green-500/20 inline-block -skew-x-12 border border-gray-200 from-pink-300 via-green-200 to-yellow-200 text-xs font-bold text-black shadow-lg dark:from-pink-500 dark:via-green-500 dark:to-yellow-500 dark:text-black rounded-lg px-2.5 py-0.5 ">
PRO
</span>
Your free inference quota is exhausted
</header>
<main className="px-4 pt-3 pb-4">
<p className="text-gray-950 text-sm font-semibold flex items-center justify-between">
Upgrade to a PRO account to activate Inference Providers and
continue using DeepSite.
</p>
<p className="text-sm text-pretty text-gray-500 mt-2">
It also unlocks thousands of Space apps powered by ZeroGPU for 3d,
audio, music, video and more!
</p>
<a
href="https://huggingface.co/subscribe/pro"
target="_blank"
className="mt-4 bg-black text-white cursor-pointer rounded-full py-2 px-3 text-sm font-medium w-full block text-center hover:bg-gray-800 transition duration-200 ease-in-out"
onClick={handleProClick}
>
Subscribe to PRO ($9/month)
</a>
</main>
</div>
</>
);
}
export default ProModal;