/* * OpenBills - Self hosted browser app to generate and keep track of simple invoices * Version - 0 * Licensed under the MIT license - https://opensource.org/licenses/MIT * * Copyright (c) 2021 Vidhu Kant Sharma */ import React, { useState } from "react"; import "./../Form.scss"; import { Person } from "./../../../interfaces" import axios from "axios"; interface props { setVisibility: any // this component's visibility updatePeopleList: any } const RegisterPersonForm: React.FC = (props) => { const [newPersonName, setNewPersonName] = useState(""); const [newPersonAddress, setNewPersonAddress] = useState(""); const [newPersonEmail, setNewPersonEmail] = useState(""); const [newPersonPhone, setNewPersonPhone] = useState(""); const hideSelf = () => props.setVisibility(false); const closeOnBGClicked = (event: any) => event.target.className === "floatingMenuBG" && hideSelf(); const postForm = (event: any) => { event.preventDefault(); const newClient: Person = { Name: newPersonName, Address: newPersonAddress, Phone: newPersonPhone, Email: newPersonEmail } // TODO: show confirmation before being invisible // TODO: Implement override protection axios.post("/api/people/register", newClient) .then((res) => { console.log(res); props.updatePeopleList(); hideSelf(); }) .catch((err) => { console.log(err); alert("Something went wrong, please check the log by opening the console.") }); } return (
hideSelf()} />
); } export default RegisterPersonForm;