/* OpenBills-web - Web based libre billing software * Copyright (C) 2022 Vidhu Kant Sharma * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ import './scss/client-table.scss'; import { deleteClient } from './../../classes/client'; const ClientTable = (props) => { const handleEdit = (c) => { props.setClientToEdit(c) } const handleDelete = (c) => { // TODO: add confirmation prompt deleteClient(c.Id, handleDelSuccess, handleDelFail); } const handleDelSuccess = () => { props.refresh(); } const handleDelFail = () => { alert("fail") } return (
{props.clients && props.clients.map((i, id) => (

{i.Name} {i.GSTIN}

Contact: {i.Contact.Name}

Phone Number{i.Contact.Phones.length === 1 ? '' : 's'}: {i.Contact.Phones.map((j, id) => {` ${j}${id + 1 === i.Contact.Phones.length ? '' : ','}`})}
Email Address{i.Contact.Emails.length === 1 ? '' : 'es'}: {i.Contact.Emails.map((j, id) => {` ${j}${id + 1 === i.Contact.Emails.length ? '' : ','}`})}
{i.Contact.Website.length > 0 && {i.Contact.Website} }

Billing Address:

{i.BillingAddress.Text}

{i.BillingAddress.City}, {i.BillingAddress.State} - {i.BillingAddress.PostalCode} ({i.BillingAddress.Country})

{i.ShippingAddresses.length > 0 && // if billing address != shipping address JSON.stringify(i.ShippingAddresses[0]) !== JSON.stringify(i.BillingAddress) &&
{i.ShippingAddresses.map((j, id) =>

{`Shipping Address ${i.ShippingAddresses.length === 1 ? '' : id + 1}`}

{j.Text}

{j.City}, {j.State} - {j.PostalCode} ({j.Country})

)}
}
handleEdit(i)}/> handleDelete(i)}/>

))}
); } export default ClientTable;