From 340be32c93a5acc69c6cb0163a70870143713ac3 Mon Sep 17 00:00:00 2001 From: "gpt-engineer-app[bot]" <159125892+gpt-engineer-app[bot]@users.noreply.github.com> Date: Sat, 18 Apr 2026 07:33:52 +0000 Subject: [PATCH] Changes Co-authored-by: renee-png <262607627+renee-png@users.noreply.github.com> --- .../cases/convert-to-collections-dialog.tsx | 23 +++++++++++++++---- 1 file changed, 19 insertions(+), 4 deletions(-) diff --git a/src/components/cases/convert-to-collections-dialog.tsx b/src/components/cases/convert-to-collections-dialog.tsx index 666eabf..407c4f1 100644 --- a/src/components/cases/convert-to-collections-dialog.tsx +++ b/src/components/cases/convert-to-collections-dialog.tsx @@ -56,12 +56,16 @@ export function ConvertToCollectionsDialog({ const [selected, setSelected] = useState>(new Set()); const [search, setSearch] = useState(""); const [status, setStatus] = useState("none"); + const [includeEmpty, setIncludeEmpty] = useState(false); + const [emptyName, setEmptyName] = useState(""); useEffect(() => { if (!open) return; setSelected(new Set()); setSearch(""); setStatus("none"); + setIncludeEmpty(false); + setEmptyName(""); (async () => { setLoading(true); const [{ data: hos }, { data: cols }] = await Promise.all([ @@ -77,7 +81,9 @@ export function ConvertToCollectionsDialog({ .eq("case_id", caseId), ]); setHomeowners(hos ?? []); - setExistingIds(new Set((cols ?? []).map((c) => c.homeowner_id))); + setExistingIds( + new Set((cols ?? []).map((c) => c.homeowner_id).filter((id): id is string => !!id)), + ); setLoading(false); })(); }, [open, caseId, clientId]); @@ -123,17 +129,26 @@ export function ConvertToCollectionsDialog({ }; const submit = async () => { - if (selected.size === 0) { - toast.error("Pick at least one homeowner"); + if (selected.size === 0 && !includeEmpty) { + toast.error("Pick at least one homeowner or enable an empty collection"); return; } setSubmitting(true); - const rows = Array.from(selected).map((homeowner_id) => ({ + const rows: any[] = Array.from(selected).map((homeowner_id) => ({ case_id: caseId, homeowner_id, status, created_by: user?.id, })); + if (includeEmpty) { + rows.push({ + case_id: caseId, + homeowner_id: null, + status, + name: emptyName.trim() || null, + created_by: user?.id, + }); + } const { error } = await supabase.from("collections").insert(rows); setSubmitting(false); if (error) {