diff --git a/src/components/timer/header-timer.tsx b/src/components/timer/header-timer.tsx index efbe94c..999b0ec 100644 --- a/src/components/timer/header-timer.tsx +++ b/src/components/timer/header-timer.tsx @@ -50,6 +50,8 @@ export function HeaderTimer() { const [feeItems, setFeeItems] = useState([]); const [feeItemId, setFeeItemId] = useState(""); const [showNewFee, setShowNewFee] = useState(false); + const [staff, setStaff] = useState>([]); + const [enteredById, setEnteredById] = useState(""); // Load clients + cases the user can access (RLS handles filtering) useEffect(() => { @@ -75,6 +77,9 @@ export function HeaderTimer() { setCases(ks ?? []); setProfileRate((prof as any)?.hourly_rate ?? null); setFeeItems((fees ?? []) as FeeItem[]); + const { data: st } = await supabase.from("profiles").select("id, full_name, email").order("full_name"); + setStaff((st ?? []) as any); + setEnteredById((prev) => prev || user.id); })(); }, [user?.id]); @@ -121,7 +126,7 @@ export function HeaderTimer() { const rate = isFlatFee ? selectedFee!.amount : effectiveRate; const { error } = await supabase.from("time_entries").insert({ case_id: timer.caseId, - user_id: user.id, + user_id: enteredById || user.id, work_date: new Date().toISOString().slice(0, 10), hours, hourly_rate: rate, @@ -143,6 +148,7 @@ export function HeaderTimer() { ); setBillable(true); setFeeItemId(""); + setEnteredById(user.id); setOpen(false); }; @@ -289,6 +295,22 @@ export function HeaderTimer() { /> +
+ + ({ + value: s.id, + label: (s.full_name || s.email || "Unknown") + (s.id === user?.id ? " (me)" : ""), + keywords: `${s.full_name ?? ""} ${s.email ?? ""}`, + }))} + /> +
+