"use client"; import { Plus } from "lucide-react"; import Link from "next/link"; import { useState } from "react"; import { useUser } from "@/hooks/useUser"; import { Project, ProjectType } from "@/types"; import { ProjectCard } from "./project-card"; import { LoadProject } from "./load-project"; import { MAX_FREE_PROJECTS } from "@/lib/utils"; import { ProTag } from "@/components/pro-modal"; import { Button } from "@/components/ui/button"; import { useProModal } from "@/components/contexts/pro-context"; import { api } from "@/lib/api"; import { toast } from "sonner"; export function MyProjects({ projects: initialProjects, }: { projects: ProjectType[]; }) { const { user } = useUser(); const { openProModal } = useProModal(); const [projects, setProjects] = useState( initialProjects || [] ); const onDelete = async (project: ProjectType) => { const response = await api.delete(`/me/projects/${project.name}`); if (response.data.ok) { toast.success("Project deleted successfully!"); setProjects((prev) => prev.filter((p) => p.id !== project.id)); } else { toast.error(response.data.error); } }; return ( <>

{user?.fullname}'s DeepSite Projects {user?.isPro ? ( "" ) : ( ({projects.length}/{MAX_FREE_PROJECTS}) )}

{user?.isPro ? ( "Create, manage, and explore your DeepSite projects." ) : ( Upgrade to{" "} openProModal([])} />{" "} to create unlimited projects with DeepSite. )}

{projects?.length >= MAX_FREE_PROJECTS && !user?.isPro ? ( ) : ( // { // setProjects((prev) => [...prev, project]); // }} // />
)}
{projects.length < MAX_FREE_PROJECTS ? ( Create Project ) : (
openProModal([])} > Create Project
)} {projects.map((project: ProjectType) => ( onDelete(project)} /> ))}
); }