Co-authored-by: renee-png <262607627+renee-png@users.noreply.github.com>
This commit is contained in:
gpt-engineer-app[bot]
2026-04-18 23:28:40 +00:00
co-authored by renee-png
parent efba8dc2d3
commit 6587bfbf13
+24 -3
View File
@@ -69,8 +69,10 @@ export function NewTaskDialog({
const [priority, setPriority] = useState<"low" | "normal" | "high" | "urgent">("normal");
const [dueDate, setDueDate] = useState<Date | undefined>();
const [caseId, setCaseId] = useState<string | null>(defaultCaseId ?? null);
const [clientId, setClientId] = useState<string | null>(null);
const [assigneeIds, setAssigneeIds] = useState<string[]>([]);
const [cases, setCases] = useState<CaseOption[]>([]);
const [clients, setClients] = useState<ClientOption[]>([]);
const [profiles, setProfiles] = useState<Profile[]>([]);
const [submitting, setSubmitting] = useState(false);
const [showPicker, setShowPicker] = useState(false);
@@ -78,21 +80,40 @@ export function NewTaskDialog({
useEffect(() => {
if (!open) return;
setCaseId(defaultCaseId ?? null);
setClientId(null);
setTitle("");
setDescription("");
setPriority("normal");
setDueDate(undefined);
setAssigneeIds(user ? [user.id] : []);
(async () => {
const [c, p] = await Promise.all([
supabase.from("cases").select("id, case_number, title").order("case_number"),
const [c, cl, p] = await Promise.all([
supabase
.from("cases")
.select("id, case_number, title, client_id")
.is("archived_at", null)
.neq("status", "closed")
.order("case_number"),
supabase
.from("clients")
.select("id, name")
.is("archived_at", null)
.order("name"),
supabase.from("profiles").select("id, full_name, email").order("full_name"),
]);
setCases((c.data ?? []) as CaseOption[]);
const caseList = (c.data ?? []) as CaseOption[];
setCases(caseList);
setClients((cl.data ?? []) as ClientOption[]);
setProfiles((p.data ?? []) as Profile[]);
if (defaultCaseId) {
const k = caseList.find((x) => x.id === defaultCaseId);
if (k?.client_id) setClientId(k.client_id);
}
})();
}, [open, defaultCaseId, user]);
const filteredCases = clientId ? cases.filter((c) => c.client_id === clientId) : cases;
const submit = async () => {
if (!user || !title.trim()) return;
setSubmitting(true);