Spaces:
Running
Running
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; | |