import { Link, routes, navigate } from '@redwoodjs/router' import { useAuth } from '@redwoodjs/auth' import { useMutation } from '@redwoodjs/web' import { toast } from '@redwoodjs/web/toast' import useUser from 'src/helpers/hooks/useUser' import Svg from 'src/components/Svg/Svg' import { Popover } from '@headlessui/react' import { CadPackageType } from 'src/components/CadPackage/CadPackage' export const CREATE_PROJECT_MUTATION = gql` mutation CreateProjectMutation($input: CreateProjectInput!) { createProject(input: $input) { id title user { id userName } } } ` export function DynamicProjectButton({ children, ideType, className }) { const { isAuthenticated } = useAuth() const { user } = useUser() const [createProject] = useMutation(CREATE_PROJECT_MUTATION, {}) const handleCreate = async (ideType) => { const projectPromise = createProject({ variables: { input: { userId: user.id, cadPackage: ideType } }, }) toast.promise(projectPromise, { loading: 'creating Project', success: Initializing, error: Problem creating., }) const { data: { createProject: project }, } = await projectPromise navigate( routes.ide({ userName: project?.user?.userName, projectTitle: project?.title, }) ) } const ButtonWrap = ({ children, ideType, className }) => isAuthenticated && user ? ( ) : ( {children} ) return ( {children} ) } const menuOptions: { name: string sub: string dotClasses: string bgClasses: string ideType: CadPackageType }[] = [ { name: 'OpenSCAD', sub: 'beta', bgClasses: 'bg-yellow-800', dotClasses: 'bg-yellow-200', ideType: 'openscad', }, { name: 'CadQuery', sub: 'beta', bgClasses: 'bg-ch-blue-700', dotClasses: 'bg-blue-800', ideType: 'cadquery', }, { name: 'JSCAD', sub: 'beta', bgClasses: 'bg-ch-purple-500', dotClasses: 'bg-yellow-300', ideType: 'jscad', }, { name: 'Curv', sub: 'beta', bgClasses: 'bg-ch-blue-700', dotClasses: 'bg-blue-800', ideType: 'curv', }, ] const NavPlusButton: React.FC = () => { return (

New Project


) } export default NavPlusButton