diff --git a/src/components/cases/time-tab.tsx b/src/components/cases/time-tab.tsx index 5e48439..14404df 100644 --- a/src/components/cases/time-tab.tsx +++ b/src/components/cases/time-tab.tsx @@ -42,6 +42,8 @@ export function CaseTimeTab({ caseRecord, onInvoice }: CaseTimeTabProps) { const [showForm, setShowForm] = useState(false); const [submitting, setSubmitting] = useState(false); const [profileRate, setProfileRate] = useState(null); + const [staff, setStaff] = useState>([]); + const [enteredById, setEnteredById] = useState(""); const [form, setForm] = useState({ work_date: new Date().toISOString().slice(0, 10), hours: "", @@ -60,6 +62,20 @@ export function CaseTimeTab({ caseRecord, onInvoice }: CaseTimeTabProps) { const [showNewFee, setShowNewFee] = useState(false); const [showImport, setShowImport] = useState(false); + useEffect(() => { + (async () => { + const { data } = await supabase + .from("profiles") + .select("id, full_name, email, hourly_rate") + .order("full_name"); + setStaff((data ?? []) as any); + })(); + }, []); + + useEffect(() => { + if (user?.id && !enteredById) setEnteredById(user.id); + }, [user?.id, enteredById]); + const load = async () => { const { data, error } = await supabase .from("time_entries") @@ -112,10 +128,11 @@ export function CaseTimeTab({ caseRecord, onInvoice }: CaseTimeTabProps) { if (!hours || hours <= 0) { toast.error("Time must be greater than 0"); return; } if (!form.description.trim()) { toast.error("Description required"); return; } if (!user?.id) { toast.error("Not signed in"); return; } + const userIdForEntry = enteredById || user.id; setSubmitting(true); const { error } = await supabase.from("time_entries").insert({ case_id: caseRecord.id, - user_id: user.id, + user_id: userIdForEntry, work_date: form.work_date, hours, hourly_rate: rate, @@ -242,6 +259,19 @@ export function CaseTimeTab({ caseRecord, onInvoice }: CaseTimeTabProps) { setForm({ ...form, work_date: e.target.value })} required /> +
+ + +
setForm({ ...form, hours: e.target.value })} />