"use client"; import { useState } from "react"; import { AddCompanyButton, EditCompanyButton } from "./company-form"; import { RowActionsMenu, RowActionsItem, RowActionsDestructiveItem, RowActionsSeparator } from "@/components/ui/row-actions-menu"; import { DeleteConfirmDialog } from "@/components/ui/delete-confirm-dialog"; import { ConfirmDialog } from "@/components/ui/confirm-dialog"; import { deleteCompany, toggleCompanyActive } from "./actions"; export type CompanyRow = { id: string; name: string; gstNumber: string | null; address: string | null; telephone: string | null; mobile: string | null; email: string | null; invoiceEmail: string | null; invoiceAddress: string | null; isActive: boolean; }; function CompanyActionsMenu({ company }: { company: CompanyRow }) { const [editOpen, setEditOpen] = useState(false); const [deleteOpen, setDeleteOpen] = useState(false); const [toggleOpen, setToggleOpen] = useState(false); return ( <> setEditOpen(true)}>Edit setToggleOpen(true)}> {company.isActive ? "Deactivate" : "Activate"} setDeleteOpen(true)}>Delete deleteCompany(company.id)} /> toggleCompanyActive(company.id)} /> ); } export function CompaniesTable({ companies }: { companies: CompanyRow[] }) { return (

Company Management

Sister companies used for invoicing and purchase orders

{companies.length === 0 && ( )} {companies.map((c) => ( ))}
Company Name GST Number Contact Status
No companies yet. Add one to start selecting it on purchase orders.

{c.name}

{c.address &&

{c.address}

}
{c.gstNumber ?? } {c.telephone &&

☎ {c.telephone}

} {c.mobile &&

📱 {c.mobile}

} {c.email &&

✉ {c.email}

} {c.invoiceEmail &&

📄 {c.invoiceEmail}

} {!c.telephone && !c.mobile && !c.email && !c.invoiceEmail && }
{c.isActive ? "Active" : "Inactive"}
); }