Auto-populated datetime header

X-Lovable-Edit-ID: edt-6f04a5ef-abc4-40b4-aa68-23180e3195ae
Co-authored-by: renee-png <262607627+renee-png@users.noreply.github.com>
This commit is contained in:
gpt-engineer-app[bot]
2026-04-17 00:55:23 +00:00
co-authored by renee-png
+17 -7
View File
@@ -15,7 +15,12 @@ export function CaseStatusTab({ caseId }: { caseId: string }) {
const [items, setItems] = useState<any[]>([]);
const [showForm, setShowForm] = useState(false);
const [submitting, setSubmitting] = useState(false);
const [form, setForm] = useState({ title: "", body: "" });
const nowLocal = () => {
const d = new Date();
d.setMinutes(d.getMinutes() - d.getTimezoneOffset());
return d.toISOString().slice(0, 16);
};
const [form, setForm] = useState({ title: nowLocal(), body: "" });
const load = async () => {
const { data } = await supabase
@@ -30,7 +35,7 @@ export function CaseStatusTab({ caseId }: { caseId: string }) {
const submit = async (e: React.FormEvent) => {
e.preventDefault();
if (!form.title.trim() || !form.body.trim()) { toast.error("Title and body required"); return; }
if (!form.title.trim() || !form.body.trim()) { toast.error("Date/time and details required"); return; }
setSubmitting(true);
const { error } = await supabase.from("status_updates").insert({
case_id: caseId,
@@ -40,7 +45,7 @@ export function CaseStatusTab({ caseId }: { caseId: string }) {
});
setSubmitting(false);
if (error) toast.error(error.message);
else { toast.success("Update logged"); setShowForm(false); setForm({ title: "", body: "" }); load(); }
else { toast.success("Update logged"); setShowForm(false); setForm({ title: nowLocal(), body: "" }); load(); }
};
const del = async (item: any) => {
@@ -62,8 +67,13 @@ export function CaseStatusTab({ caseId }: { caseId: string }) {
<CardContent className="p-4">
<form onSubmit={submit} className="space-y-3">
<div className="space-y-1.5">
<Label>Title</Label>
<Input value={form.title} onChange={(e) => setForm({ ...form, title: e.target.value })} required maxLength={200} />
<Label>Date & time</Label>
<Input
type="datetime-local"
value={form.title}
onChange={(e) => setForm({ ...form, title: e.target.value })}
required
/>
</div>
<div className="space-y-1.5">
<Label>Details</Label>
@@ -99,9 +109,9 @@ export function CaseStatusTab({ caseId }: { caseId: string }) {
<CardContent className="p-4">
<div className="flex items-start justify-between gap-3 mb-1.5">
<div>
<h4 className="font-serif text-base">{u.title}</h4>
<h4 className="font-serif text-base">{formatDateTime(u.title)}</h4>
<div className="text-xs text-muted-foreground">
{u.user?.full_name || u.user?.email || "Unknown"} · {formatDateTime(u.created_at)}
Logged by {u.user?.full_name || u.user?.email || "Unknown"} · {formatDateTime(u.created_at)}
</div>
</div>
{canDelete && (