import { useState } from "react"; import { useCompany } from "../context/CompanyContext"; import { formatCents } from "../lib/utils"; import { Card, CardContent } from "@/components/ui/card"; import { Input } from "@/components/ui/input"; import { Button } from "@/components/ui/button"; export function Companies() { const { companies, selectedCompanyId, setSelectedCompanyId, createCompany, loading, error, reloadCompanies, } = useCompany(); const [name, setName] = useState(""); const [description, setDescription] = useState(""); const [budget, setBudget] = useState("0"); const [submitting, setSubmitting] = useState(false); const [submitError, setSubmitError] = useState(null); async function onSubmit(e: React.FormEvent) { e.preventDefault(); if (!name.trim()) return; setSubmitting(true); setSubmitError(null); try { await createCompany({ name: name.trim(), description: description.trim() || null, budgetMonthlyCents: Number(budget) || 0, }); setName(""); setDescription(""); setBudget("0"); await reloadCompanies(); } catch (err) { setSubmitError(err instanceof Error ? err.message : "Failed to create company"); } finally { setSubmitting(false); } } return (

Companies

Create and select the company you are operating.

Create Company

setName(e.target.value)} /> setDescription(e.target.value)} /> setBudget(e.target.value.replace(/[^0-9]/g, ""))} />
{submitError &&

{submitError}

}
{loading &&

Loading companies...

} {error &&

{error.message}

}
{companies.map((company) => { const selected = company.id === selectedCompanyId; return ( ); })}
); }