Changes
Co-authored-by: renee-png <262607627+renee-png@users.noreply.github.com>
This commit is contained in:
co-authored by
renee-png
parent
98e5265ae6
commit
3c6ba2b316
@@ -129,13 +129,14 @@ export function TaskDetailPanel({
|
||||
const load = useCallback(async () => {
|
||||
if (!taskId) return;
|
||||
setLoading(true);
|
||||
const [t, a, s, c, h, pr] = await Promise.all([
|
||||
const [t, a, s, c, h, pr, rem] = await Promise.all([
|
||||
supabase.from("tasks").select("*").eq("id", taskId).maybeSingle(),
|
||||
supabase.from("task_assignees").select("user_id").eq("task_id", taskId),
|
||||
supabase.from("tasks").select("*").eq("parent_task_id", taskId).order("sort_order"),
|
||||
supabase.from("task_comments").select("*").eq("task_id", taskId).order("created_at"),
|
||||
supabase.from("task_history").select("*").eq("task_id", taskId).order("created_at", { ascending: false }).limit(50),
|
||||
supabase.from("profiles").select("id, full_name, email").order("full_name"),
|
||||
supabase.from("task_reminders").select("*").eq("task_id", taskId).order("remind_at"),
|
||||
]);
|
||||
if (t.data) {
|
||||
setTask(t.data as TaskRow);
|
||||
@@ -158,6 +159,7 @@ export function TaskDetailPanel({
|
||||
setHistory((h.data ?? []) as HistoryRow[]);
|
||||
setAllProfiles((pr.data ?? []) as Profile[]);
|
||||
setProfiles((pr.data ?? []) as Profile[]);
|
||||
setReminders((rem.data ?? []) as any[]);
|
||||
setLoading(false);
|
||||
}, [taskId]);
|
||||
|
||||
@@ -363,6 +365,44 @@ export function TaskDetailPanel({
|
||||
await supabase.from("task_comments").delete().eq("id", id);
|
||||
};
|
||||
|
||||
const openReminderDialog = () => {
|
||||
setReminderDate(format(new Date(), "yyyy-MM-dd"));
|
||||
setReminderTime("09:00");
|
||||
setReminderEmail(user?.email || "");
|
||||
setReminderNote("");
|
||||
setReminderOpen(true);
|
||||
};
|
||||
|
||||
const saveReminder = async () => {
|
||||
if (!task || !user) return;
|
||||
if (!reminderDate || !reminderTime || !reminderEmail.trim()) {
|
||||
toast.error("Date, time, and email are required");
|
||||
return;
|
||||
}
|
||||
setSavingReminder(true);
|
||||
const remindAt = new Date(`${reminderDate}T${reminderTime}:00`).toISOString();
|
||||
const { error } = await supabase.from("task_reminders").insert({
|
||||
task_id: task.id,
|
||||
recipient_email: reminderEmail.trim(),
|
||||
remind_at: remindAt,
|
||||
note: reminderNote.trim() || null,
|
||||
created_by: user.id,
|
||||
});
|
||||
setSavingReminder(false);
|
||||
if (error) {
|
||||
toast.error(error.message);
|
||||
return;
|
||||
}
|
||||
toast.success("Reminder scheduled");
|
||||
setReminderOpen(false);
|
||||
load();
|
||||
};
|
||||
|
||||
const deleteReminder = async (id: string) => {
|
||||
await supabase.from("task_reminders").delete().eq("id", id);
|
||||
load();
|
||||
};
|
||||
|
||||
if (!task && !loading) return null;
|
||||
|
||||
const completedSubtasks = subtasks.filter((s) => s.status === "complete").length;
|
||||
|
||||
Reference in New Issue
Block a user