Changes
Co-authored-by: renee-png <262607627+renee-png@users.noreply.github.com>
This commit is contained in:
co-authored by
renee-png
parent
7a71f73fda
commit
5371698cd4
@@ -341,6 +341,7 @@ function CalendarPage() {
|
||||
};
|
||||
|
||||
const openCreate = (presetDate?: Date) => {
|
||||
setEditingId(null);
|
||||
setFTitle("");
|
||||
setFType("client_meeting");
|
||||
setFStart(presetDate ?? selected);
|
||||
@@ -348,12 +349,33 @@ function CalendarPage() {
|
||||
setFEndTime("10:00");
|
||||
setFAllDay(false);
|
||||
setFCase("none");
|
||||
setFClient("none");
|
||||
setFLocation("");
|
||||
setFNotes("");
|
||||
setFAssignee("self");
|
||||
setDialogOpen(true);
|
||||
};
|
||||
|
||||
const openEdit = (evt: Evt) => {
|
||||
if (evt.source !== "event") return; // tasks/hearings edit elsewhere
|
||||
setEditingId(evt.id);
|
||||
setFTitle(evt.title);
|
||||
setFType((EVENT_TYPE_MAP[evt.event_type] ? evt.event_type : "other") as EventTypeKey);
|
||||
const dt = parseISO(evt.start);
|
||||
setFStart(dt);
|
||||
setFAllDay(evt.all_day);
|
||||
if (!evt.all_day) {
|
||||
setFStartTime(format(dt, "HH:mm"));
|
||||
setFEndTime(evt.end ? format(parseISO(evt.end), "HH:mm") : format(dt, "HH:mm"));
|
||||
}
|
||||
setFCase(evt.case_id ?? "none");
|
||||
setFClient(evt.client_id ?? "none");
|
||||
setFLocation(evt.location ?? "");
|
||||
setFNotes(evt.description ?? "");
|
||||
setFAssignee(evt.owner_id ?? "self");
|
||||
setDialogOpen(true);
|
||||
};
|
||||
|
||||
const handleCreate = async () => {
|
||||
if (!user || !fTitle.trim() || !fStart) {
|
||||
toast.error("Title and date are required");
|
||||
@@ -365,23 +387,42 @@ function CalendarPage() {
|
||||
const endISO = fAllDay ? null : `${dateStr}T${fEndTime}:00`;
|
||||
const ownerId = fAssignee === "self" ? user.id : fAssignee;
|
||||
|
||||
const { error } = await supabase.from("events").insert({
|
||||
const payload = {
|
||||
title: fTitle.trim(),
|
||||
event_type: fType,
|
||||
start_at: startISO,
|
||||
end_at: endISO,
|
||||
all_day: fAllDay,
|
||||
case_id: fCase === "none" ? null : fCase,
|
||||
client_id: fClient === "none" ? null : fClient,
|
||||
location: fLocation.trim() || null,
|
||||
description: fNotes.trim() || null,
|
||||
created_by: ownerId,
|
||||
});
|
||||
};
|
||||
|
||||
const { error } = editingId
|
||||
? await supabase.from("events").update(payload).eq("id", editingId)
|
||||
: await supabase.from("events").insert({ ...payload, created_by: ownerId });
|
||||
setSaving(false);
|
||||
if (error) {
|
||||
toast.error(error.message);
|
||||
return;
|
||||
}
|
||||
toast.success("Event scheduled");
|
||||
toast.success(editingId ? "Event updated" : "Event scheduled");
|
||||
setDialogOpen(false);
|
||||
reload();
|
||||
};
|
||||
|
||||
const handleDelete = async () => {
|
||||
if (!editingId) return;
|
||||
if (!confirm("Delete this event?")) return;
|
||||
setSaving(true);
|
||||
const { error } = await supabase.from("events").delete().eq("id", editingId);
|
||||
setSaving(false);
|
||||
if (error) {
|
||||
toast.error(error.message);
|
||||
return;
|
||||
}
|
||||
toast.success("Event deleted");
|
||||
setDialogOpen(false);
|
||||
reload();
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user