/* * 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 NewAddressPane from "./../Address/NewAddressPane" import { Person, Address } from "./../../../Interfaces/interfaces" import { DummyAddress } from "../../../Interfaces/dummies"; import axios from "axios"; import "./../Form.scss"; interface props { setVisibility: any // this component's visibility updatePeopleList: any } const RegisterPersonForm: React.FC = (props) => { const [newPersonName, setNewPersonName] = useState(""); const [newPersonPhone, setNewPersonPhone] = useState(""); const [newPersonEmail, setNewPersonEmail] = useState(""); const [newPersonBillAddress, setNewPersonBillAddress] = useState
(DummyAddress); const [shipToBillAddress, setShipToBillAddress] = useState(true); 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, Phone: newPersonPhone, Email: newPersonEmail, BillAddress: newPersonBillAddress, ShipAddress: shipToBillAddress ? newPersonBillAddress // TODO: use shipping address(es) instead : newPersonBillAddress, } // TODO: show confirmation before being invisible // TODO: Implement overwrite 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 (

Client Details

hideSelf()} />
); } export default RegisterPersonForm;