| 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; |
|
|