/* * 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, useEffect } from "react"; import "./BillingPage.scss"; import { Item, Person, Transport/*, Invoice*/ } from "../../interfaces"; import axios from "axios"; import DocumentInfoForm from "./../Form/Document/DocumentInfoForm"; import AddNewItemForm from "./../Form/Items/AddNewItemForm"; import TransportForm from "./../Form/Transport/TransportForm"; import RegisterItemForm from "./../Form/Items/RegisterItemForm"; import RegisterPersonForm from "./../Form/People/RegisterPersonForm"; import ItemsDisplay from "./../Display/ItemsDisplay"; import SummaryDisplay from "./../Display/SummaryDisplay"; import InvoiceInfoMenu from "./../Menu/InvoiceInfoMenu"; import SubmitMenu from "./../Menu/SubmitMenu"; const BillingPage: React.FC = () => { const [savedItems, getSavedItems] = useState([]); const [savedPeople, getSavedPeople] = useState([]); const [registerItemFormVisibility, setRegisterItemFormVisibility] = useState(false); const [registerPersonFormVisibility, setRegisterPersonFormVisibility] = useState(false); const [items, setItems] = useState([]); const [invoiceNumber, setInvoiceNumber] = useState(1234); // TODO: get data from backend const [showTransportForm, setShowTransportForm] = useState(false); const [transporter, setTransporter] = useState({Name: "", VehicleNum: "", Method: "", GSTIN: "", Builty: ""}) const [showSubmitMenu, setShowSubmitMenu] = useState(false); const getRegisteredItems = () => axios.get(`/api/items/get-all`) .then((res) => getSavedItems(res.data)) .catch((res) => console.log(res)); const getRegisteredPeople = () => axios.get(`/api/people/get-all`) .then((res) => getSavedPeople(res.data)) .catch((res) => console.log(res)); // get data from server on startup useEffect(() => { getRegisteredItems(); getRegisteredPeople(); }, []); // TODO: to be handled by backend const defGSTValue = 18; // update the items from AddNewItemForm const getItems = (item: Item) => setItems([...items, item]); return ( <> {registerItemFormVisibility && } {registerPersonFormVisibility && } {showTransportForm && } {showSubmitMenu && }
); } export default BillingPage;