import { useState } from "react"; import { api } from "../API/API"; import { NewProject } from "../Types/goTypes"; import InputField from "./InputField"; import Logo from "../assets/Logo.svg"; import Button from "./Button"; /** * Provides UI for adding a project to the system. * @returns {JSX.Element} - Returns the component UI for adding a project */ function AddProject(): JSX.Element { const [name, setName] = useState(""); const [description, setDescription] = useState(""); /** * Tries to add a project to the system */ const handleCreateProject = async (): Promise => { const project: NewProject = { name: name.replace(/ /g, ""), description: description.trim(), }; try { const response = await api.createProject( project, localStorage.getItem("accessToken") ?? "", ); if (response.success) { alert(`${project.name} added!`); setDescription(""); setName(""); } else { alert("Project not added, name could be taken"); console.error(response.message); } } catch (error) { alert("Project not added"); console.error(error); } }; return (
{ e.preventDefault(); void handleCreateProject(); }} > TTIME Logo

Create a new project

{ e.preventDefault(); setName(e.target.value); }} /> { e.preventDefault(); setDescription(e.target.value); }} />

); } export default AddProject;