fokan's picture
Initial commit
eecbedf
raw
history blame
2.37 kB
/* eslint-disable @typescript-eslint/no-explicit-any */
import { useState } from "react";
import { MdSave } from "react-icons/md";
import { Button } from "@/components/ui/button";
import {
Popover,
PopoverContent,
PopoverTrigger,
} from "@/components/ui/popover";
import { LoginModal } from "@/components/login-modal";
import { useUser } from "@/hooks/useUser";
import { Page } from "@/types";
import { DeployButtonContent } from "./content";
export function DeployButton({
pages,
prompts,
}: {
pages: Page[];
prompts: string[];
}) {
const { user } = useUser();
const [open, setOpen] = useState(false);
return (
<div className="flex items-center justify-end gap-5">
<div className="relative flex items-center justify-end">
{user?.id ? (
<Popover>
<PopoverTrigger asChild>
<div>
<Button variant="default" className="max-lg:hidden !px-4">
<MdSave className="size-4" />
Publish your Project
</Button>
<Button variant="default" size="sm" className="lg:hidden">
Publish
</Button>
</div>
</PopoverTrigger>
<PopoverContent
className="!rounded-2xl !p-0 !bg-white !border-neutral-200 min-w-xs text-center overflow-hidden"
align="end"
>
<DeployButtonContent pages={pages} prompts={prompts} />
</PopoverContent>
</Popover>
) : (
<>
<Button
variant="default"
className="max-lg:hidden !px-4"
onClick={() => setOpen(true)}
>
<MdSave className="size-4" />
Publish your Project
</Button>
<Button
variant="default"
size="sm"
className="lg:hidden"
onClick={() => setOpen(true)}
>
Publish
</Button>
</>
)}
<LoginModal
open={open}
onClose={() => setOpen(false)}
pages={pages}
title="Log In to publish your Project"
description="Log In through your Hugging Face account to publish your project and increase your monthly free limit."
/>
</div>
</div>
);
}