import { useForm } from "react-hook-form"; import { createNotification } from "@app/components/notifications"; import { Button, FormControl, Input, Modal, ModalClose, ModalContent } from "@app/components/v2"; import { useRequestProjectAccess } from "@app/hooks/api"; import { Project } from "@app/hooks/api/projects/types"; type ContentProps = { projectId: string; onComplete: () => void; }; const Content = ({ projectId, onComplete }: ContentProps) => { const form = useForm<{ note: string }>(); const requestProjectAccess = useRequestProjectAccess(); const onFormSubmit = ({ note }: { note: string }) => { if (requestProjectAccess.isPending) return; requestProjectAccess.mutate( { comment: note, projectId }, { onSuccess: () => { createNotification({ type: "success", title: "Project Access Request Sent", text: "Project admins will receive an email of your request" }); onComplete(); } } ); }; return (
); }; type RequestProjectAccessModalProps = { isOpen: boolean; onOpenChange: (isOpen: boolean) => void; project?: Project; onComplete?: () => void; }; export const RequestProjectAccessModal = ({ isOpen, onOpenChange, project, onComplete }: RequestProjectAccessModalProps) => { if (!project) return null; return ( { onOpenChange(false); if (onComplete) onComplete(); }} projectId={project?.id} /> ); };